Systems and methods for extending slam to multiple regions

ABSTRACT

Vector Field SLAM is a method for localizing a mobile robot in an unknown environment from continuous signals such as WiFi or active beacons. Disclosed is a technique for localizing a robot in relatively large and/or disparate areas. This is achieved by using and managing more signal sources for covering the larger area. One feature analyzes the complexity of Vector Field SLAM with respect to area size and number of signals and then describe an approximation that decouples the localization map in order to keep memory and run-time requirements low. A tracking method for re-localizing the robot in the areas already mapped is also disclosed. This allows to resume the robot after is has been paused or kidnapped, such as picked up and moved by a user. Embodiments of the invention can comprise commercial low-cost products including robots for the autonomous cleaning of floors.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. §119(e) of U.S.Provisional Application No. 61/558,831, filed Nov. 11, 2011, theentirety of which is hereby incorporated by reference herein.

This is related to U.S. patent application Ser. No. 12/940,937 filed onNov. 5, 2010, and U.S. patent application Ser. No. 11/090,621 filed Mar.25, 2005, now U.S. Pat. No. 7,720,554, issued May 18, 2010, theentireties of which are hereby incorporated by reference herein.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention generally relates to mobile robots, and in particular, tothe localization of mobile robots.

2. Description of the Related Art

By choosing appropriate sensors, computing hardware, algorithms, and aprocess for setup, a mobile robot can be installed for autonomousnavigation in almost any indoor space [1].

The question from a consumer perspective then becomes, how cheap can asystem be designed, and how simple can the setup process be made. In thecontext of autonomous floor cleaning, the hardware costs should be assmall as possible (within a few tens of dollars) and the setup should beminimal, e.g. the often suggested approach of first fully mapping anenvironment for the purpose of localization afterwards [2] will not beacceptable to many end consumers.

In this respect, approaches using vision or small laser range findershave become very successful within the last few years. Samsung's Hauzenis one of the existing autonomous vacuum cleaners showing systematicnavigation. A camera pointing towards the ceiling is used for trackingthe pose of the robot [3]. The same sensor configuration is usednowadays on many other robot vacuums, including those of Yujin Robotics,Philips and LG Electronics. In addition to the up-facing camera, LG'sRoboking also uses an optical sensor observing the floor surface. Adifferent sensing technology is employed in Neato's XV-11 vacuum robot:a miniature laser range finder [4]. Navigation using that sensor hasbeen a research topic for more than two decades [5].

SUMMARY

One embodiment includes a method of estimating a pose of a robot,wherein the method includes: computing the pose of the robot throughsimultaneous localization and mapping as the robot moves along a surfaceto generate one or more maps, wherein the pose comprises position andorientation of the robot; navigating the robot such that the robottreats the surface in a methodical manner; determining that operation ofthe robot has been paused, and after resuming operation of the robot:re-localizing the robot within a map of the one or more maps withouterasing the one or more maps; and resuming treatment of the surface inthe methodical manner.

One embodiment includes an apparatus, wherein the apparatus includes: arobot; and a controller of the robot configured to: compute a pose ofthe robot through simultaneous localization and mapping as the robotmoves along a surface to generate one or more maps, wherein the posecomprises a position and orientation of the robot; navigate the robotsuch that the robot treats the surface in a methodical manner; determinethat operation of the robot has been paused, and after resumption ofoperation of the robot: re-localize the robot within a map of the one ormore maps without erasing the one or more maps; and resume treatment ofthe surface in the methodical manner.

One embodiment includes an apparatus for estimating a pose of a robot,wherein the apparatus includes: a means for computing the pose of therobot through simultaneous localization and mapping as the robot movesalong a surface to generate one or more maps, wherein the pose comprisesposition and orientation of the robot; a means for navigating the robotsuch that the robot treats the surface in a methodical manner; a meansfor determining that operation of the robot has been paused, and afterresuming operation of the robot: a means for re-localizing the robotwithin a map of the one or more maps without erasing the one or moremaps; and a means for resuming treatment of the surface in themethodical manner.

One embodiment includes a method of performing simultaneous localizationand mapping (SLAM) for a robot, wherein the method includes: performingSLAM in a first area associated with a first map; performing SLAM in asecond area associated with a second map; and performing positionestimation in a third area outside of and between the first area and thesecond area, wherein in the third area, position estimation is performedwith dead reckoning.

One embodiment includes an apparatus, wherein the apparatus includes: arobot; a controller of the robot configured to: perform SLAM in a firstarea associated with a first map; perform SLAM in a second areaassociated with a second map; and perform position estimation in a thirdarea outside of and between the first area and the second area, whereinin the third area, position estimation is performed with dead reckoning.

One embodiment includes an apparatus for performing simultaneouslocalization and mapping (SLAM) for a robot, wherein the apparatusincludes: a means for performing SLAM in a first area associated with afirst map and in a second area associated with a second map; and a meansfor performing position estimation in a third area outside of andbetween the first area and the second area, wherein in the third area,position estimation is performed with dead reckoning.

One embodiment includes a method of managing resources for a robot,wherein the method includes: associating observations of a first set ofone or more continuous signals with a first map; associatingobservations of a second set of one or more continuous signals with asecond map, wherein the second map is maintained independently the firstmap; and switching between performing simultaneous localization andmapping (SLAM) with the first map or performing SLAM with the second mapbased at least partly on an observed signal strength of the first set orthe second set.

One embodiment includes an apparatus, wherein the apparatus includes: arobot; a controller of the robot configured to: associate observationsof a first set of one or more continuous signals with a first map;associate observations of a second set of one or more continuous signalswith a second map, wherein the second map is maintained independentlythe first map; and switch between performing simultaneous localizationand mapping (SLAM) with the first map or performing SLAM with the secondmap based at least partly on an observed signal strength of the firstset or the second set.

One embodiment includes an apparatus for managing resources for a robot,wherein the apparatus includes: a means for associating observations ofa first set of one or more continuous signals with a first map; a meansfor associating observations of a second set of one or more continuoussignals with a second map, wherein the second map is maintainedindependently the first map; and a means for switching betweenperforming simultaneous localization and mapping (SLAM) with the firstmap or performing SLAM with the second map based at least partly on anobserved signal strength of the first set or the second set.

The robots can also include a drive assembly, such as a motor, wheels,gearbox and the like for moving and maneuvering the robot, include wheelodometers for odometry, a gyroscope for measuring yaw angle, and atreatment assembly, such as a cleaning assembly, for treating a surface,such as a floor.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features of the invention will now be described withreference to the drawings summarized below. These drawings (not toscale) and the associated descriptions are provided to illustratepreferred embodiments of the invention and are not intended to limit thescope of the invention. Like designations denote like elements.

FIG. 1 illustrates an example embodiment of a mobile device configuredto learn signal distributions for use in localizing and navigating anenvironment.

FIG. 2 is a functional logical diagram illustrating example functionalelements of an embodiment of such a mobile device.

FIG. 3 illustrates an example physical architecture of an embodiment ofsuch a mobile device.

FIG. 4 illustrates a linear relationship between the actual (“truth”)ground position of a mobile device and the output of a sensor detectingsignals at that ground position.

FIG. 5 illustrates a non-linear relationship between the actual(“truth”) ground position of a mobile device and the output of a sensordetecting signals at that ground position.

FIG. 6 is a flow chart of an example localization filter initializationprocess.

FIG. 7 illustrates an example embodiment of a signal sensor forlocalization.

FIG. 8 is a cross-section of the sensor of FIG. 7.

FIG. 9 illustrates a top-down perspective of an illustrative exampleoperating environment with a grid of sensor measurement points.

FIG. 10 illustrates an example of rotational variance of signalmeasurement as well as detected variation in the signal throughout theenvironment of FIG. 9.

FIG. 11 illustrates bilinear interpolation used by some embodiments.

FIG. 12 is a flow chart illustrating an example use of GraphSLAM forlocalization.

FIG. 13 illustrates an example 8-neighborhood of a node.

FIG. 14 illustrates an example extrapolation of localization values fora new node from a neighboring pair of nodes.

FIG. 15 is a flow chart illustrating an example use of EKF SLAM forlocalization.

FIGS. 16-22 illustrate an example development of an information matrixin an embodiment using EKF SLAM for localization.

FIG. 23 is a flow chart illustrating an example use of ESEIF-SLAM forlocalization.

FIG. 24 illustrates example results of using odometry (dead-reckoning)alone to follow a navigational plan.

FIG. 25 illustrates example results of using an example embodiment ofbackground signal localization to follow a navigational plan.

FIGS. 26 and 27 illustrate example signal strength maps generated by anembodiment.

FIG. 28 illustrates a map generated by vector-field SLAM during acleaning run in a relatively large 3-bedroom home environment.

FIG. 29 illustrates bilinear interpolation from cell nodes.

FIG. 30 illustrates a sample grid in vector field SLAM showinginformation links.

FIG. 31 illustrates an atlas of three maps each having a beacon thatprojects two unique spots for localization.

FIG. 32 is a flowchart of computing motion for a robot from deadreckoning data, such as data from odometry and a gyroscope.

FIG. 33 illustrates a robot moving in a straight line followed by anin-place rotation.

FIG. 34 illustrates a robot moving in an arc.

FIGS. 35A and 35B are flowcharts illustrating re-localization with onepose hypothesis.

FIG. 36 is flowchart illustrating re-localization with multiple posehypotheses.

FIG. 37 is a flowchart illustrating a process for finding a posehypothesis.

FIG. 38 is a flowchart illustrating an alternative process for finding apose hypothesis.

FIG. 39 illustrates an example of area coverage as a function of thenumber of beacons.

FIG. 40A illustrates experimental results for position error in meters.

FIG. 40B illustrates experimental results for position errors inpercentages of errors above 1 meter.

FIG. 41 is a block diagram illustrating one implementation of anapparatus for position estimation.

FIG. 42 illustrates an example of a use for the position estimationtechniques.

FIG. 43 illustrates a geometrical model associated with one embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Although these methods and apparatus will be described in terms ofcertain preferred embodiments, other embodiments that are apparent tothose of ordinary skill in the art, including embodiments that do notprovide all of the benefits and features set forth herein, are alsowithin the scope of the invention.

One embodiment uses low-cost indoor navigation which employs activebeacons in the form of navigation cubes that project two patterns ontothe ceiling in the area to be cleaned (see FIG. 1). It can be arguedthat this is a modification to the environment. However, other systemsalso require modifications before a robot can operate, e.g. turning onlights for a vision system, installing virtual walls for defining thearea the robot is allowed to navigate in, or, in general, opening doorsand clearing of obstacles. In another embodiment, the localizationsystem leverages on existing infrastructure already present in the home,for example the WiFi signals of base stations.

Some of the advantages of embodiments compared to vision or rangefinders-based solutions are the low memory footprint and the lowcomputational requirements. The data structures used fit into tens ofkilobytes and are updated on relatively low-cost computational hardware,such as an ARM7 processor. This reduces the cost of the localizationsubsystem which is crucially important in consumer products and can makethe difference between success and failure of the product in themarketplace.

Localization using active beacons looks trivial at first sight as thepose of the robot could be triangulated from the known beacon positions[6]. However, usually the beacon positions are not known a priori andthe beacon signals become distorted by reflections off walls andfurniture. The latter is also a well-known problem with other similarsignals, like GPS in urban canyons [7], or the mobile positioning inwireless networks [8].

Instead of modeling or filtering multi-path signals, recent approachescompute a signal map over the environment, sometimes also referred to aslocation fingerprinting [9]. The signal map can be learned by, forexample, Expectation-Maximization [10] or Gaussian Process LatentVariable Models [11]. In one embodiment, the signal map is learned usinga simultaneous localization and mapping (SLAM) approach.

In one embodiment, the signal map includes signal vectors over space andis referred to as Vector Field SLAM. An earlier application (U.S.application Ser. No. 12/940,937) disclosed a method for keeping a robotlocalized in small- to medium-sized environments containing a single“Northstar” beacon [12, 13]. A Northstar beacon refers to a device whichprojects two or more spots of lights, preferably to a ceiling. Thesespots can be in the infrared spectrum and each spot can be distinguishedbased on a switching frequency at which the spots are pulsed.

Described herein are methods and systems for the localization of anobject, such as a mobile object (e.g., a robotic floor cleaner). Certainembodiments may utilize such mobile object localization to navigate themobile object. By way of illustration and not limitation, the mobileobject may optionally be an autonomous, semiautonomous, or remotelydirected floor cleaner (e.g., a sweeper, a vacuum, and/or a mopper),delivery vehicle (e.g., that delivers mail in a building, food in ahospital or dormitory, etc.), or monitoring vehicle (e.g., pollution orcontaminant detector, security monitor), equipped with one or more drivemotors which drive one or more wheels, tracks, or other such device,where the drive motors may be under control of a computing deviceexecuting a program stored in non-transitory memory (e.g., it persistswhen the object is powered down or when some other data is overwrittenor erased).

Example embodiments will now be described with reference to certainfigures. Through the description herein, “localization” may includedetermining both the position of an object in an environment and theorientation of that object. The combination of position and orientationis referred to as the “pose”. Either or both of the position (orlocation) and orientation may be absolute (in terms of a logicalreference angle and origin) or relative (to another object).

Many objects, including mobile objects, are not functionally orphysically symmetrical. Knowing the orientation of such objects may beuseful in determining how to navigate such objects in an environment.For example, some mobile objects can only move forward and some mobileobjects may have functional components, such as vacuum ports orsweepers, at specific locations on their surface. Also, the currentorientation of a mobile object may affect its future position as much asits current position does if it moves in the direction of itsorientation. Thus, determining the pose of a mobile object may be ofgreat assistance in determining how to navigate the mobile object toperform a task, such as a floor cleaning task, in an efficient manner.

For convenience, much of this disclosure is expressed in terms oflocalizing a “mobile device”. However, the disclosed aspects maygenerally be used to localize types of objects, and one of skill in theart will understand how the disclosure can be applied to objects thatare not independently mobile (such as those that are transported orcarried by something else) and to objects that are not devices (e.g.,pets equipped with collars or humans carrying appropriately configuredtags or computing devices).

Typically, when performing tasks such as vacuum cleaning, lawn mowing,delivery, elderly care, etc., an autonomous or mobile device needs toknow its pose with respect to its environment in order to reach its goalor accomplish its task in an effective way. For example, toys and otherdevices might be intended and configured to behave in a particularmanner when they are in a particular location. Even if the device itselfhas no additional task or goal that benefits from localization, if itspose can be determined then the location of a person or other entitycarrying or otherwise attached to the device can be determined. If therelative orientations of the carrier and the device are known, then thepose of the carrier can be determined.

The methods and systems disclosed herein advance the state of the art inhow the pose of an autonomous device is computed from a combination ofobservations of a vector field that varies over space and measurementsfrom motion sensors such as odometers, gyroscopes, accelerometers,internal measurement units (IMU) or other dead-reckoning devices(generically referred to as “dead-reckoning sensors” and the output ofwhich is generically referred to as “odometry” or “motionmeasurements”). Measurements (e.g., measurements of change in positionor orientation) from a motion sensor may be relative to another positionor may be absolute. Such measurements may include measures of locationor distance (e.g., distance or direction of travel) as well as measuresof object orientation (e.g., amount of rotation from a previousorientation or amount of rotation from an absolute reference). Wave orother signals emitted into an environment by an external source cancreate an appropriate vector field. Example methods and systemsdisclosed herein use a localization and mapping technique, such as asimultaneous (which may be substantially simultaneous) localization andmapping (SLAM) framework, for estimating object pose, parametersmodeling rotational variability, and parameters describing the signaldistribution or vector field in the environment.

Example embodiments incorporating certain disclosed aspects can localizeand track a mobile device with higher accuracy than conventional methodsthat ignore complications such as rotational variability or multi-patheffects. Some embodiments do so in a way that requires no a priori mapof the environment or of the signal strength in that environment. Somedisclosed embodiments can optionally do so while using relativelyinexpensive amounts of computational resources such as processing power,storage, and time, such that the functionality disclosed herein can bemade available in a relatively compact mobile device and/or it can bedistributed in affordable mass market consumer goods, including productswhich perform additional functionality beyond localizing, mapping, ornavigating. Pose estimates can be obtained in near real time in somesuch embodiments and some embodiments run in constant or substantiallyconstant time, with storage requirements linear or near linear based onthe size of the environment for a given node size (i.e., for a givennode size, it is linear in the number of nodes).

FIG. 1 illustrates an example context or environment in which an object100 such as a mobile device may be situated. The environment 110 in thisexample includes left wall 120, right wall 130, front wall 135, ceiling140, and floor or ground 150. One or more signal sources 180 generatebackground wave signals—the aforementioned vector field. The mobiledevice 100 includes a signal detector 170 configured to detect thesignals generated by the sources 180 and a dead-reckoning (motion)sensor 190 to report on observed motion.

U.S. Pat. No. 7,720,554 discloses, among other things, a low-costoptical sensing system for indoor localization. A beacon 160 projects apair of unique infrared patterns or spots 180 on the ceiling 140. Thebeacon 160 can be placed relatively freely in the environment 110 andadjusted such that it points towards the ceiling 140. An optical signalsensor 170 measures the direction to both spots 180 on the ceiling 140.The signal sensor 170 then reports the coordinates of both directionvectors projected onto the sensor plane. These beacon spots 180 are thesignal sources in an example embodiment that is used throughout thisdisclosure. Other embodiments may use more or fewer spots 180. Otherwave signals such as those used in Wi-Fi, GPS, cellular networks,magnetic fields, sound waves, radio-frequency identification (RFID), orlight can also be used. Corresponding sources include wireless routers,satellites, cell towers, coils, speakers, RFID transmitters, andprojectors. For example, appropriately configured ceiling lights orspeakers may be used in certain embodiments. Although the illustratedembodiment uses a dedicated projector 160 to generate the signal sources180, in other embodiments pre-existing or off-the-shelf generators canbe used. For example, in an apartment complex or a yard, a detector 170may be configured to take advantage of the distinct Wi-Fi signalsavailable from the various Wi-Fi routers that may be within range.Similarly, existing lights, including fixed ceiling lights, may be usedwith photo-sensitive sensors. Other signal sources may generatesoundwaves (audible, subsonic, or ultrasonic) and the detector 170 maybe configured to detect the generated waves. Thus, no or minimalmodification to the environment is necessary for such embodiments to beeffective. Digital signals, including those transmitted by radio and/oras used in wireless communications may also be used.

Because an indoor embodiment is used to illustrate many of the disclosedaspects, those aspects are disclosed in the context of an indoorenvironment. However, the disclosed aspects are not limited in this wayand can operate outdoors as well as indoors.

A system that tracks the pose of a mobile device 100 equipped with asignal sensor 170 by relying, even in part, on the values reported bythat sensor 170 faces a number of challenges. Typically, the signalssensed by the sensor 170 will have a different strength or value atdifferent locations in the environment. In the illustrated scenario, themobile device 100 moves along the ground 150 (although one of skillcould readily apply what is disclosed to a mobile device that travelsalong a wall or ceiling, or that moves (and rotates) in threedimensions). One challenge is relating a change in the detected (sensed)signal to a change in ground position. The relationship between sensedsignal and ground position is the “scale” parameter.

Another challenge stems from the construction, manufacture, or assemblyof the sensor 170, performance properties of the sensor 170, and/or itsassociation with or coupling to the mobile device 100. In someembodiments the orientation of the sensor 170 is fixed relative to theenvironment 110 and is independent of the rotation of the mobile device100. For example, a gyroscopic or inertial system may be used torotatably attach the sensor 170 to the mobile device 100 such that whenthe mobile device turns or rotates, the sensor rotates in a counterdirection. In other embodiments the sensor 170 is rigidly affixed to orintegrated with the mobile device 100 such that its orientation issubstantially fixed relative to the orientation of the mobile device100. Indeed, in this disclosure the position and orientation of thesensor 170 are presumed to be identical to that of the mobile device 100so that, for example, “sensor 170” is used interchangeably with “device100” when discussing pose or motion. As discussed below, this assumptionsimplifies the disclosure. One of reasonable skill can readily accountfor any fixed or calculable offset between the orientation of the sensor170 and the device 100.

Ideally, rotation of the sensor 170 relative to the environment 110should not affect the detected signal or should affect it in a way thatdepends only on the degree of rotation. For example, the direction tosignal sources 180 changes when rotating the sensor 170, but themagnitude of the signal at that position is not changed. However, somesensors have directional sensitivities. For example, a Wi-Fi receivercan show changes in signal strength when the antenna is rotating as aresult of the device on which it is mounted (e.g., the mobile device)rotating. Even in such a situation, the variation might be predictableand calculable. However, errors in manufacturing, misalignments inattaching the sensor on the object, uneven flooring, and the like mayintroduce an additional, difficult to predict, variation in theorientation of the signal sensor 170 relative to the orientation of thedevice 100. This may lead to seemingly unpredictable variation in thesignal strength detected by the sensor 170. Thus, for example, a sensor170 measuring bearing and elevation relative to sources 180 can showvariations due to calibration errors of the sensor's vertical axis. Thisparameter is referred to herein as “rotational variability”.

A third challenge in determining the pose of a mobile device arises fromthe multiple paths from the signal sources 180 to the sensor 170. Ingeneral, a sensor 170 may receive a wave signal not only directly from asource 180 but also through reflections on walls 120, 130, 135 and otherstationary and non-stationary objects in the environment (e.g.,furniture, trees, and humans). The direct path as well as eachreflection may contribute to the signal measured on the sensor 170. Thiscan create non-linear and seemingly arbitrary distributions of thesignal throughout the environment 110. This effect is referred to herein“multi-path”.

Some embodiments of the methods and systems disclosed are configured tooperate when some or all of the following conditions are met:

First, a given signal can be uniquely identified relative to othersignals so that when a signal is detected at different times in anenvironment 110 with multiple signals, a correspondence between thesignals can be maintained. For example, signals in Wi-Fi, GPS and othernetworks contain a unique ID as part of their data packet protocol.Active beacons, such as those disclosed in U.S. Pat. No. 7,720,554, mayencode a signature (e.g., by modulating the signal, such as bymodulating a light that forms light spots on a ceiling).

Second, signals are substantially continuous and change over space butoptionally not in time. It should be understood that continuity does notmean that there is necessarily a one-to-one correspondence of vector ofsignal values to ground positions. The same measurement vector might beobserved at several different locations in the environment 110 because,for example, of multi-path. Some embodiments may operate with signalsthat change in time, where the change over time is known or can bepredicted.

Third, a dependency on orientation can by described by signal sensororientation and rotational variability. In other words, knowing thesignal values at one pose (position and orientation) enables expectedsignal values for other orientations at the same position to becalculated if the change in sensor orientation and any rotationalvariability are known.

FIG. 2 illustrates an example functional block diagram of an embodimentof a localization system. A dead reckoning sensor 190 provides relativemotion data (odometry). Information from the dead reckoning sensor maybe used to estimate, in whole or in part, the device's current positionbased upon a previously determined position and advancing that positionusing a known or estimated speed over an elapsed period of time.

The dead reckoning (motion) sensor 190 may include multiple instances ofmultiple types of dead reckoning sensors such as those mentioned above.A signal sensor 170 provides measurement vectors of the signals in theenvironment. The signal sensor 170 may include multiple instances of oneor more types of sensing components. In some embodiments the signalsensor 170 may include one or more sensors which detect more than onedifferent types of signals (e.g., the signal sensor 170 may include bothWi-Fi sensors and light sensors). Some such embodiments may use only onesignal type at a time; some such embodiments may normalize the output ofthe signal sensor and proceed as if there were only one type of(composite) signal being sensed; and some embodiments may extend what isdisclosed below in obvious ways by using the availability of more signalsensor data to improve the filtering results.

The output of sensors 170, 190 are provided to a Vector Field SLAMmodule 220. The illustrated SLAM module 220 reads and stores information230 about a grid of nodes. The SLAM module 220 also provides poseestimates of the mobile device 100 and map information about the signaldistribution in the environment 110. These may be provided to othercomponents for use and/or display. For example, pose estimates may beprovided to a navigational component 240, which directs the mobiledevice 100 to move to a new location based at least in part on itscurrent pose. They may also be provided to an alerting or action system250 which uses the current pose as at least a partial basis forsubsequent action such as cleaning. The map may be stored for future useand/or displayed for diagnostic purposes, for example.

Even though many appropriate signal sources may be present or could bemade available, and although appropriate signal sensors may beconfigured on an embodiment, some embodiments will optionally not useGPS, not use WiFi, not use direct light signals (e.g., non-reflectedlight from lamps or infrared sources), and/or not make use of ceilinglighting fixtures for some or all aspects of the localization process.

FIG. 3 illustrates example physical components of an appropriatelyconfigured example device 100. The dead reckoning sensors 190 and signalsensors 170 are instantiated by components such as those describedabove. Those physical sensors may include their own processors and/orlocal storage components and may be configured to normalize data andgenerate standardized output signals. The sensor components maycommunicate with one or more processors 310. The processor may be, forexample, a specially configured chip or a more general processorexecuting software. Regardless, it is configured in accordance with whatis disclosed herein. The processor may include its own storage, but itmay be advantageous for the device 100 to include additional memory orstorage 320 to store any necessary software and the data necessary toimplement the methods disclosed below. In some embodiments the sensorsmay also store data directly in the memory 320. Software forimplementing aspects of what is disclosed would typically be stored inROM, flash memory, or some other form of persistent storage, althoughvolatile storage may be used as well. Data may be stored in volatile(e.g., can be erased when the system powers down) and/or non-volatilememory (which stores the data for later access even if the device ispowered down and then powered up again). The processor 310 and storage320 may also be used for functional purposes not directly related tolocalization. For example, the mobile device 100 may use them whenperforming navigation or when performing tasks such as cleaning orguarding. In other embodiments, the processing and storage capacity arededicated to localization and mapping and the device contains additionalcomputational capacity for other tasks.

The processor 310 may be operatively connected to various outputmechanisms such as screens or displays, light and sound systems, anddata output devices (e.g., busses, ports, and wireless or wired networkconnections). The processor may be configured to perform navigationalroutines which take into account the results of the SLAM process.Executing a navigational process may result in signals being sent tovarious controllers such as motors (including drive motors orservomotors), brakes, actuators, etc, which may cause the mobile device100 to move to a new pose (or to perform another activity, such as acleaning function). The move to this new pose may, in turn, triggeradditional output from the sensors to the processor, causing the cycleto continue. An example embodiment is configured with an ARM7 processor,256K of flash ROM for software, and 64 K of RAM for data. These are notminimum requirements—some or all of what is disclosed herein can beaccomplished with less processing and storage capacity. Otherembodiments may be different processors and different memoryconfigurations, with larger or smaller amounts of memory.

Turning back to FIG. 1, the signal sensor 170 measures bearing andelevation to two or more of the projected spots 180 on the ceiling 140.Bearing and elevation can be translated into (x, y) coordinates in asensor coordinate system by projecting them onto the sensor plane, whichin the illustrated example embodiment is typically less than 10 cm abovethe ground 150 and is substantially parallel to it. In addition to thesignal coordinates, the amount of light from each spot 180 is measuredas the signal magnitude.

The geometry of the illustrated localization system results in a linearmodel for position estimation in an ideal environment without multi-pathsignals. That is, if the sensor 170 moves one meter in one direction,the sensor coordinates change by a certain amount (depending on thescale parameter, which is proportional to the height of the ceiling140). If the sensor 170 then moves another meter into the samedirection, the sensed signals change by the same amount. FIG. 4illustrates this property by using measurements of a sensor 170 mountedon a fixed path (or “rail”) along which the sensor 170 moves in a fixedand known direction. The rail is an experimental platform for evaluatingthe systems and methods described herein which allows the groundposition of the sensor 170 to be known to observers and which alsoallows the orientation of the sensor 170 to be controlled. On the x-axisthe position on the rail is shown. The y-axis shows the y coordinate ofone of the spots 180 in sensor units.

In situations such as that shown in FIG. 4, the linear distribution ofthe wave signal can be used directly for the localization of the sensor170 in conjunction with other system parameters. For example, in theembodiment illustrated in FIG. 1 with two spots 180, these parameterscould be chosen as per Eq. 1, where s₁ and s₂ are scale factors for eachspot 180 and m₀=(m_(0,x1), m_(0,y1), m_(0,x2), m_(0,y2))^(T) containsabsolute offsets (m_(0,x1), m_(0,y1))^(T) for the first spot 181 and(m_(0,x2), m_(0,y2))^(T) for the second spot 182.

v _(init)=(s ₁ ,s ₂ ,m ₀)  Eq. 1

From these parameters, an expected signal value h=(h_(x1), h_(y1),h_(x2), h_(y2))^(T) at a sensor position (x y)^(T) can be calculated as:

$\begin{matrix}{\begin{pmatrix}h_{x\; 1} \\h_{y\; 1} \\h_{x\; 2} \\h_{y\; 2}\end{pmatrix} = {\begin{pmatrix}m_{0,{x\; 1}} \\m_{0,{y\; 1}} \\m_{0,{x\; 2}} \\m_{0,{y\; 2}}\end{pmatrix} + {\begin{pmatrix}s_{1} & 0 \\0 & s_{1} \\s_{2} & 0 \\0 & s_{2}\end{pmatrix}\begin{pmatrix}x \\y\end{pmatrix}}}} & {{Eq}.\mspace{14mu} 2}\end{matrix}$

It is straightforward to extend this model for an arbitrary number ofspots 180.

For general wave signals, a similar linear model can be chosen. Ingeneral, the following model in Eq. 3 applies, where h is the vector ofestimated signal values for position (x y)^(T), h₀ is the absoluteoffset in the sensor space, and A₀ is a general scale matrix.

$\begin{matrix}{h = {h_{0} + {A_{0}\begin{pmatrix}x \\y\end{pmatrix}}}} & {{Eq}.\mspace{14mu} 3}\end{matrix}$

A flow chart for computing the parameters of this linear model (eitherEq. 2 or Eq. 3) is shown in FIG. 5. At state 510, sensor measurementsare obtained from the signal sensor 170. When a sensor measurement isobtained, data about the concurrent pose of the device 100 is alsoobtained (e.g., at the same or substantially the same time), such asfrom one or more on-board dead-reckoning sensors 190 or from separatemonitoring systems. State 510 continues while the device 100 travels ashort distance. At state 520, a RANSAC method (or, more generally, anyalgorithm for fitting data into a linear model) is run. At state 525 thestatus of the process is evaluated. Based on, for example, the number ofdata points evaluates (which may be set to 2, 5, 10, or more), theamount of time elapsed (which may be set to 1 second, 5 seconds, 10seconds, 30 seconds, or more), or the quality of the data fittingalgorithm (which may be set to be about or above a particularthreshold), an embodiment may determine the initialization issufficient. If so, then at state 530, the output of RANSAC is used toinitialize the parameters for the relevant equation. If not, theinitialization process continues.

RANSAC (Random Sample Consensus) is an iterative method to estimate theparameters of a mathematical function from sensor data that includeoutliers (see, e.g., A. Fischler, R. C. Bolles. Random Sample Consensus:A Paradigm for Model Fitting with Applications to Image Analysis andAutomated Cartography. Comm. of the ACM, Vol 24, pp 381-395, 1981). TheRANSAC algorithm runs several iterations. In a given iteration a numberof measurements are chosen at random (the term “random” as used herein,encompasses pseudo random). In an embodiment using two spots 180, twosignal sensor 170 readings each containing measurements to both spots180 are sufficient. In an example implementation, it was determined thatadditional sample readings per iteration did not produce a significantimprovement on the results and increased the resources consumed by theRANSAC process. From the chosen measurements the parameter values aredetermined by solving the set of equations arising from placing thechosen measurements into the mathematical model, Eq. 2. More generally,Eq. 3 may be used. The computed parameters are then evaluated using someor all available sensor data, optionally including dead reckoning data.This usually computes a score such as the number of inliers or theoverall residual error. After completing the desired number ofiterations, the parameter values with a score meeting certain criteria(e.g., the best score) are chosen as the final parameters.

Embodiments may use variations of RANSAC or alternatives to it.

Illustrative examples of the parameters used during initialization arepresented below, in the discussion of GraphSLAM.

Once the initialization process is complete or the parameters for therelevant equation are otherwise determined, one or more algorithms foraccounting for noisy sensors and dead-reckoning drift can be used toimplement a system to effectively track the pose of the mobile device100 with more accuracy, in less time, and/or with lower computationalresource requirements than many conventional methods. Examples of suchalgorithms include the Kalman Filter, the Extended Kalman Filter (EKF),the Invariant Extended Kalman Filter (IEKF), and the Unscented KalmanFilter (UKF). However, the ability of these filters to effectively trackpose after the initialization process of FIG. 500 tends to degrade inenvironments where the distribution of the wave signal is non-linear.But even in environments, such as room 110, where the wave signal isdistorted (e.g., by multi-path), the linear model described here isstill useful for the initialization of non-linear systems according towhat is disclosed herein.

As discussed above, multi-path occurs when the wave signal not onlyreaches the signal sensor 170 directly but also in other ways, such asby reflecting from nearby objects or walls (e.g. the right wall 130 inFIG. 1). As the sensor 170 moves closer to wall 130, due to occlusionand limited field of view, the sensor 170 receives more signalcontributions from wall reflections. The result is a shift in the signalback to a position that appears to be further away from the wall 130.

FIG. 6 illustrates this scenario where right wall 130 reflects thesignal from the spots 180. Note how the curve 610 bends over andswitches to the opposite direction: when the mobile device 100 is 3meters from its starting point the sensor 170 is reporting a detectedvalue of approximately −0.3, the same value it reported at approximately1.5 meters, instead of the expected value of approximately −0.55predicted by a linear model. This compression of the sensor signalappears with any wave signal that shows reflections from walls or otherobjects. It makes position estimation particularly difficult because arange of signal sensor readings do not match to exactly one groundposition but instead have a least two ground position candidates. Evenmore candidates are possible when taking measurements in 2D or higherdimensions, or when the multipath pattern involves multiple objects, forexample.

However, if the expected signal strength as a particular location isknown, then signal strength measurements can still be used forlocalization in a multi-path environment via, for example, a Bayesianlocalization framework such as an EKF. In an example embodiment, by wayof illustration, a piece-wise linear approximation (pieces areillustrated in FIG. 6 by the solid vertical lines 620) is used tosubstantially simultaneously learn the signal shape or “map” (thestrength of the signal throughout the environment) and estimate the poseof the mobile device 100. This is done using a simultaneous localizationand mapping (SLAM) approach.

The second challenge mentioned was rotational variability. When turninga sensor 170 in place, the measurements of the observed vector signalcan change. This is the rotational variability of the sensor 170. Forexample, a sensor 170 in an embodiment using spots 180 outputs (x y)coordinates of the center of a spot 180 on the sensor plane. The (x y)coordinates essentially are a vector representing bearing and elevationto the spot 180. Ideally, as the sensor 170 rotates in place, only thebearing should change—the elevation should stay constant. In practice,however, elevation changes (usually, but not always, by a relativelysmall amount) due to variations in manufacturing, calibration errors, ormisalignments in mounting the sensor 170 on the mobile device 100.

For example, FIG. 7 shows a top-down perspective of an example of oneembodiment of a signal sensor 170 mounted on a mobile device 100.Although FIG. 1 represents the sensor 170 as protruding from the mobiledevice 100, FIG. 7 depicts an embodiment in which the sensor 170 isrecessed in a cavity or depression with a substantially circularperimeter (although other perimeters could also be used). The sensor 170comprises four infrared photodiodes 710 mounted on a pyramidal structure720. The top of the pyramid 720 does not contain a photodiode 710 and issubstantially coplanar with the top surface of the mobile device 100. Inother embodiments, the sensor 170 may have a different structureincluding, for example, more or fewer photodiodes 710 arranged in asimilar or different configuration. The approach described herein can beadapted to account for the geometric properties of the sensor 170 used.In the arrangement shown in FIG. 7, each of the photodiodes 710 measuresincoming light by producing an electric current substantiallyproportional to the received light. Each of the two opposing photodiodepairs is then used for measuring the direction of light on thecorresponding axis. Below, the computation of the light direction andthe effects of rotational variability for the x axis of the sensor arediscussed. The computations for the y axis are analogous. Thus, whatfollows describes a mathematical system that models rotationalvariability for the signal sensor 170 of FIG. 7 and can be readilyadapted to a wide range of signal sensors.

FIG. 8 illustrates a representation 800 of the sensor 170 of FIG. 7,simplified for the purposes of clarity. Only the pair of photodiodes 710measuring along the x axis is shown. Light from one of the spots 180 (itcan be assumed to be spot 181 without any loss of generality) isdirected at the sensor 170 as illustrated by light vectors 810. The xcoordinate reported by the sensor 170 is proportional to the tangent ofthe elevation angle (β) to spot 181. This tangent of β is measuredthrough the two currents i1 and i2 of the opposing photodiodes 801 and802, respectively. The angle α of the pyramid is a parameter that mayvary among embodiments. Some embodiments may have an adjustable angle α.The below assumes that α is greater than zero or that such an effect issimulated (e.g., through the use of apertures above the photodiodeswhich cast shadows and limit the exposure of the photodiodes to lightfrom the spots.). Generally, the larger the angle α is, the larger thesensitivity of the sensor 170 to changes in location, but the smallerthe field of view (e.g., the closer the sensor 170 must remain to thespots). While any effective angle α between 0 and 90 degrees may beused, it is preferably within the range of 15 to 75 degrees. Someembodiments may use, for example, 30, 45, or 60 degrees.

The coordinate h_(x1) of spot 181 is equal to the tangent of β and ismeasured by:

$\begin{matrix}{h_{x\; 1} = {\frac{i_{1} - i_{2}}{i_{1} + i_{2}} = {\tan \; \beta \; \tan \; {\alpha.}}}} & {{Eq}.\mspace{14mu} 4}\end{matrix}$

The rotational variability is modeled by an offset in β that changeswith the orientation of the sensor 170 such that Eq. 5 holds, where β′is the angle to the ideal axis of rotation perpendicular to the groundplane and β_(ε) is the angular error that changes with rotation.

β=β′+β_(ε)  Eq. 5

Inserting Eq. 5 in Eq. 4 and applying the rule of the tangent of the sumof angles yields:

$\begin{matrix}\begin{matrix}{\frac{i_{1} - i_{2}}{i_{1} + i_{2}} = {{\tan \left( {\beta^{\prime} + \beta_{ɛ}} \right)}\tan \; \alpha}} \\{= {\frac{{\tan \; \beta^{\prime}} + {\tan \; \beta_{ɛ}}}{1 - {\tan \; \beta^{\prime}\tan \; \beta_{ɛ}}}\tan \; \alpha}}\end{matrix} & {{Eq}.\mspace{14mu} 6}\end{matrix}$

Since β_(ε) is small, tan β_(ε) is approximated by:

$\begin{matrix}{{\tan \; \beta_{ɛ}} = {{\frac{\sin \; \beta_{ɛ}}{\cos \; \beta_{ɛ}} \approx \frac{\beta_{ɛ}}{1}} = \beta_{ɛ}}} & {{Eq}.\mspace{14mu} 7}\end{matrix}$

Substituting Eq. 7 into Eq. 6 yields:

$\begin{matrix}{\frac{i_{1} - i_{2}}{i_{1} + i_{2}} \approx {\frac{{\tan \; \beta^{\prime}} + \beta_{ɛ}}{1 - {\beta_{ɛ}\tan \; \beta^{\prime}}}\tan \; \alpha}} & {{Eq}.\mspace{14mu} 8}\end{matrix}$

For elevation angles β′ that are much less then 90°, 1−β_(ε) tan β′ isapproximated as 1, yielding Eq. 9, where c_(x) is the rotationalvariance on the x axis depending on the orientation of the signal sensor170.

$\begin{matrix}{{\frac{i_{1} - i_{2}}{i_{1} + i_{2}} \approx {{\tan \; \beta^{\prime}\tan \; \alpha} + {\beta_{ɛ}\tan \; \alpha}}} = {{\tan \; \beta^{\prime}\tan \; \alpha} + c_{x}}} & {{Eq}.\mspace{14mu} 9}\end{matrix}$

For the y axis of the sensor 170 another bias term c_(y) is derived inan analogous way. Together both parameters form the vector c ofrotational variability.

$\begin{matrix}{c = \begin{pmatrix}c_{x} \\c_{y}\end{pmatrix}} & {{Eq}.\mspace{14mu} 10}\end{matrix}$

Since the direction β to the spots 180 can be arbitrary, the parametersfor rotational variability are substantially independent of where thespots 180 are located. All spots 180 may therefore share substantiallythe same parameters.

Similar and analogous results can be obtained for other signal sourcesand sensor types. Rotational variability is not limited to theillustrated embodiment. Other sensor(s) 170 that measuresbearing-to-signal sources 180 can show similar effects when the verticalaxis of the sensor 170 is slightly misaligned or the sensor 170otherwise rotates around an axis different from the ideal one. Forexample, antennas for radio or other wireless communication can showslight changes in the received signal when they rotate. Thus, anoptional useful model of the way the vector of signal values changes onrotation of the sensor 170 is a function that only depends on theorientation of signal sensor 170 and parameters describing therotational variability of the signal sensor 170.

FIGS. 9 and 10 illustrate rotational variability and non-linearityarising from multi-path signals. The two figures depict the environmentof room 110 from a top down perspective. FIG. 9 shows a regular grid 900consisting of 8×7 positions (every 50 cm in this example) on the floor150. A system using spots 180 was deployed with an appropriatelyconfigured signal sensor 170. At a given location 910, sensormeasurements were taken with eight different sensor orientations (every45°).

The measurements were then rotated back and drawn in a common referenceframe. FIG. 10 shows the resulting signal measurements using differentsymbols for the eight orientations. At a given location 910, themeasurements form a ring which shows the rotational variability at thislocation. In this experiment the radius is almost constant over theentire room 110. The mean of rotational variability is about 0.0072sensor units, which corresponds to an angular error of aboutβ_(ε)=0.72°. The error caused by rotational variability can be constant(as in this example) but might also change over time or location, e.g.,if the angular error β_(ε) is more significant or if there are othersimilarly variable sources of error, such as uneven floors or motiondependent device vibration, not modeled in Eq. 4 to Eq. 9.

Changes in the pitch or angle of the mobile device relative to thesurface it is traversing can also cause or contribute to rotationalvariability. For example, uneven floors or ground such as might resultfrom rolling terrain, general bumpiness, twigs or branches, brickwork,and the like can cause the pitch of the mobile device to change. In someembodiments, rotational variability due to change in pitch is monotonic,although it complements rotational variability due to manufacturing andother sources At least some rotational variability due to changes inpitch may be accounted for using the methods described herein. Forexample, changes in pitch of less than 3, 5, or 7 degrees (or otherpitches) may be accommodated by some embodiments without modification towhat is disclosed herein.

FIG. 9 also shows the effect of multi-path signals. In the illustratedscenario, the walls on the left 120, right 130, and front 135 causesignal reflections. While the left wall 120 and right wall 130 createsome level of signal compression, the front wall 135 causes severereflections that make the signal bend over. Even worse, in the cornersof the room, the signal is reflected from two walls and therefore theresulting measurement is even more distorted.

Although there is significant signal distortion, it has been determinedthat the error is systematic and continuous. This allows modeling thenature of the signal using non-linear systems. An example embodimentapproximates the non-linearity caused by multi-path through the use ofpiece-wise linear functions. This example technique is described belowin greater detail. Other approximations, e.g., using Splines (piecewisepolynomial (parametric) curves which may be used to approximate complexshapes using curve fitting) or Nurbs (non-uniform rational basissplines, which are mathematical models which may be used to generate andrepresent surfaces and curves) may also be used and may provide moreaccurate representations of the non-linear signal distortion. However,experimentation with certain embodiments has indicated that the use ofbi-linear interpolation results in faster processes and producessufficiently good results in embodiments that have limited computationalresources. Embodiments with more computational resources or those withrelaxed time constraints may beneficially use other representations,including Splines or Nurbs.

In some embodiments, localization of a mobile device 100 equipped with asignal sensor 170 is performed by learning the signal distribution inthe environment 110 while at the same time (or at substantially the sametime) localizing the mobile device 100. This is known as simultaneouslocalization and mapping (SLAM). As discussed above, in the following itis assumed that the pose of the mobile device 100 and the signal sensor170 are substantially identical. In some embodiments they are not, andit is straightforward to add, for example, a fixed coordinatetransformation between the two poses. However, assuming pose identityfacilitates understanding of the various disclosed aspects.

In SLAM, a device moves through a time series of poses x₀ . . . x_(T),x_(t)=(x, y, θ)∈SE(2), in an environment (e.g. room 110) containing Nmap features m₁ . . . m_(N), m_(i)∈∈

^(M). Here SE(2) is the space of poses in the 2 dimensional plane and

^(M) the space of the map features. Without loss of generality, x₀=(0,0, 0)^(T). At each time step t=1 . . . T the system receives a motioninput u_(t) (e.g., odometry from dead reckoning sensors 190) withcovariance R_(t) and a measurement z_(t) (e.g., of signal strength fromsignal sensors 170) with covariance Q_(t).

The motion input u_(t) is measured, for example, by motion sensors 190on the mobile device 100 and describes the change in pose of the sensor170 from time step t−1 to t. As mentioned above, in certain embodimentsthe motion input may be provided by external sensors or a combination ofinternal and external sensors. The input vector u_(t) is associated witha covariance R_(t) that models the accuracy of the pose change. Typicalmotion sensors 190 include wheel encoders, gyroscopes, accelerometers,IMUs and other dead-reckoning systems. A motion model defined by afunction g describes the motion of the device 100 since the previoustime step where e_(u), is a zero mean error with covariance R_(t):

x _(t) =g(x _(t-1) ,u _(t))+e _(u)  Eq. 11

An example of input u_(t) is a forward translation d followed by arotation α: u_(t)=(dα)^(T). Eq. 11 then resolves into the followingform:

$\begin{matrix}{x_{t} = {\begin{pmatrix}x \\y \\\theta\end{pmatrix} + \begin{pmatrix}{d\; \cos \; \theta} \\{d\; \sin \; \theta} \\\alpha\end{pmatrix} + e_{u}}} & {{Eq}.\mspace{14mu} 12}\end{matrix}$

For those skilled in the art it is straightforward to substitutedifferent motion models g and input vectors u_(t) depending on thegeometry of the mobile device 100 and available motion sensors 190. Thesystems and methods disclosed herein apply regardless of the motionmodel.

When the signal sensor 170 on the mobile device 100 obtains a newreading z_(t) of the wave signals, the SLAM system uses a sensor modelto predict the observation. As in the case of motion, the sensor readingz_(t) is associated with a covariance Q_(t) modeling the accuracy of themeasurement. The sensor model is defined by a function h that predictsan observation given the sensor 170 pose at time step t and map featuresas in Eq. 13, where e_(z) is a zero mean error with covariance Q_(t).The sensor model h depends on the map features and the available signalsensor 170 in the mobile device 100. In early SLAM applications such asthose described in Thrun et al. [2005, Chapter 10], map features arelandmarks and the sensor model h computes bearing and distance to them.The systems and methods disclosed herein optionally use a very differentapproach: some or all of the features are signal values at predeterminedor fixed locations and, few or none of the features are landmarks in theenvironment. The expected values of wave signals at a given device 100pose are computed by h as follows.

z _(t) =h(x _(t) ,m ₁ . . . m _(N))+e _(z)  Eq. 13

In SLAM it is possible to include in the sensor model calibrationparameters like those describing rotational variability of the sensor170. The SLAM algorithm then not only estimates device pose and mapfeatures, but also estimates the calibration parameters. All calibrationparameters are summarized in a vector c. The size of this vector dependson the sensor 170. For example, in an embodiment using the reflectionfrom spots of modulated light created by a projector 160 as the signalsources 180, the calibration parameters include the two bias constants(c_(x), c_(y)) in Eq. 10. The observation model in Eq. 13 then includesthis parameter:

z _(t) =h(x _(t) ,c,m ₁ . . . m _(N))+e _(z)  Eq. 14

Embodiments also learn the vector field generated by M signals over theenvironment. This vector field can mathematically be described as afunction that maps a ground pose to a vector of M signal values.

VF:SE(2)→

^(M)  Eq. 15

Since signals are independent of sensor 170 orientation (per thepreferences set forth above), the space of poses SE(2) can be decomposedinto position and orientation. The vector field over position is thenmodeled as a piece-wise linear function by laying a regular grid of nodepositions b_(i)=(b_(i;x); b_(i;y))^(T), i=1 . . . N onto the ground 150(or onto whatever surface the mobile device 100 is traversing). Thiscreates rectangular cells with one node at each of the cell's fourcorners. Each node i holds a vector m_(i)∈

^(M) describing the expected signal values when placing the sensor atb_(i) and pointing at a pre-defined direction θ₀. Returning to therunning example of signal sources 180 being spots of modulated light,the vector m_(i) holds four values—the coordinates of both spots 180:m_(i)=(m_(i,x1), m_(i,y1), m_(i,x2), m_(i,y2))^(T).

The spacing of cells in the regular grid defines the granularity andprecision with which the wave-signal distribution in the environment 110is modeled. A finer spacing leads to more cells, yielding betterprecision but requiring more memory. A coarser spacing results in fewercells, requiring less memory but at the possible cost of precision. Theexact parameter for the cell size depends on the environment, mobiledevice, and the application. For the purpose of covering an environment110 with reasonable precision (e.g., for systematic floor cleaning), thecell size could be 0.5 m to 2 meters for a system using spots offrequency modulated light as signal sources 180 in an environment with aceiling height of 2.5 to 5 meters.

For an arbitrary sensor position with orientation θ₀, the expectedsignal values are computed by bilinear interpolation from the nodes of acell (e.g., the four nodes) containing the sensor position. Such a cellis illustrated in FIG. 11. The four nodes may be determined from thesensor position at time t and node positions b_(i). “Current cell”refers to the cell in which the sensor is positioned at the current timestep t. Let x_(t)=(x, y, θ) be the sensor pose and b_(i0) . . . b_(i3)the cell nodes enclosing the sensor 170 as shown in FIG. 11.

The expected signal values at (x, y) with orientation θ₀ are thencomputed as Eq. 16, where m_(i0), m_(i1), m_(i2) and m_(i3) are thesignal values at the four cell nodes and w₀, w₁, w₂ and w₃ are theweights of the bilinear interpolation computed as Eq. 17.

$\begin{matrix}{{h_{0}\left( {x,y,{m_{1}\mspace{14mu} \ldots \mspace{14mu} m_{N}}} \right)} = {{w_{0}m_{i\; 0}} + {w_{1}m_{i\; 1}} + {w_{2}m_{i\; 2}} + {w_{3}m_{i\; 3}}}} & {{Eq}.\mspace{14mu} 16} \\{{w_{0} = \frac{\left( {b_{{i\; 1},x} - x} \right)\left( {b_{{i\; 2},y} - y} \right)}{\left( {b_{{i\; 1},x} - b_{{i\; 0},x}} \right)\left( {b_{{i\; 2},y} - b_{{i\; 0},y}} \right)}}{w_{1} = \frac{\left( {x - b_{{0i},x}} \right)\left( {b_{{i\; 2},y} - y} \right)}{\left( {b_{{i\; 1},x} - b_{{i\; 0},x}} \right)\left( {b_{{i\; 2},y} - b_{{i\; 0},y}} \right)}}{w_{2} = \frac{\left( {b_{{i\; 1},x} - x} \right)\left( {y - b_{{i\; 0},y}} \right)}{\left( {b_{{i\; 1},x} - b_{{i\; 0},x}} \right)\left( {b_{{i\; 2},y} - b_{{i\; 0},y}} \right)}}w_{3} = {\frac{\left( {x - b_{{i\; 0},x}} \right)\left( {y - b_{{i\; 0},y}} \right)}{\left( {b_{{i\; 1},x} - b_{{i\; 0},x}} \right)\left( {b_{{i\; 2},y} - b_{{i\; 0},y}} \right)}.}} & {{Eq}.\mspace{14mu} 17}\end{matrix}$

The final expected signal values are computed by taking into accountsensor orientation θ and the parameters c describing the rotationalvariability of the sensor 170:

h(x _(t) ,c,m ₁ . . . m _(N))=h _(R)(h ₀(x,y,m ₁ . . . m _(N)),θ,c)  Eq.18

Here h_(R) is a continuous function that transforms the interpolatedsignal values obtained through Eq. 16 by the sensor orientation androtational variability. This is usually a rotation by orientation θfollowed by a correction with the rotational variability c. In therunning example, turning the sensor 170 in place causes the spot 181coordinates to change according to the rotation angle θ but in theopposite direction. The rotational component h_(R) therefore becomes Eq.19, where (h_(x1), h_(y1), h_(x2), h_(y2)) is the output vector of Eq.16. It is also possible to formulate the equations for a variable numberof spots 180 since the components in Eq. 16 to Eq. 19 are not correlatedbetween spots 180. Similar equations can be readily obtained for othersignal sources.

$\begin{matrix}{{h_{R}\left( {h_{x\; 1},h_{y\; 1},h_{x\; 2},h_{y\; 2},\theta,c_{x},c_{y}} \right)} = {{\begin{pmatrix}{\cos \; \theta} & {\sin \; \theta} & 0 & 0 \\{{- \sin}\; \theta} & {\cos \; \theta} & 0 & 0 \\0 & 0 & {\cos \; \theta} & {\sin \; \theta} \\0 & 0 & {{- \sin}\; \theta} & {\cos \; \theta}\end{pmatrix}\begin{pmatrix}h_{x\; 1} \\h_{y\; 1} \\h_{x\; 2} \\h_{y\; 2}\end{pmatrix}} + \begin{pmatrix}c_{x} \\c_{y} \\c_{x} \\c_{y}\end{pmatrix}}} & {{Eq}.\mspace{14mu} 19}\end{matrix}$

It is possible to apply more complex schemes for predicting the sensorsignal that use more than only the four nodes of the current cell. Acell with fewer nodes could also be used. In another embodiment, thefunction in Eq. 16 is evaluated for the current and several neighboringcells and then a weighted mean of them is computed as the final result.The weights are taken as the mass of probability of the current positionestimate that falls into each cell. The weight of a given cell is afunction of the probability that the sensor or mobile device is withinthis cell. This probability can be derived from the current mobiledevice pose and associated uncertainty as it is computed by thelocalization filter.

The above understandings and equations enable the application of a SLAMalgorithm for estimating device path, rotational variability, and/or thesignal values at the node positions. Optionally, full SLAM and/oron-line SLAM may be used.

In full SLAM, the complete trajectory of the device 100, rotationalvariability of the sensor 170, and/or some or all map features arecomputed. For example, the state that is estimated is:

$\begin{matrix}{Y = {\begin{pmatrix}x_{1} \\\vdots \\x_{T} \\c \\m_{1} \\\vdots \\m_{N}\end{pmatrix}.}} & {{Eq}.\mspace{14mu} 20}\end{matrix}$

One algorithm that computes an estimate of Y is GraphSLAM, which is usedin some embodiments and is described in more detail below.

In contrast, on-line SLAM estimates the current pose and some or all mapfeatures at each time step t=1 . . . T. The state estimated at each timestep t is:

$\begin{matrix}{y_{t} = {\begin{pmatrix}x_{t} \\c \\m_{1} \\\vdots \\m_{N}\end{pmatrix}.}} & {{Eq}.\mspace{14mu} 21}\end{matrix}$

There are several algorithms that estimate y, over time. Examples usingEKF-SLAM, EIF-SLAM and ESEIF-SLAM are described below. Embodiments mayuse any of the described full SLAM or on-line SLAM algorithms, as wellas other algorithms. Some embodiments can be configured to use aparticular SLAM algorithm depending on, for example, a user'spreference, the computational resources available, and other operationalconstraints.

GraphSLAM is a non-linear optimization method for estimating the statevector in Eq. 20 by finding the values in Y that best explain the sensorand motion data from sensors 170 and 190. GraphSLAM estimates Y as thesolution to a non-linear least squares problem in finding the minimum ofthe following objective function where the quantities are defined asdescribed before:

$\begin{matrix}{J = {{\sum\limits_{t = 1}^{T}{\left( {x_{t} - {g\left( {x_{t - 1},u_{t}} \right)}} \right)^{T}{R_{t}^{- 1}\left( {x_{t} - {g\left( {x_{t - 1},u_{t}} \right)}} \right)}}} + {\sum\limits_{t = 1}^{T}{\left( {z_{t} - {h\left( y_{t} \right)}} \right)^{T}{Q_{t}^{- 1}\left( {z_{t} - {h\left( y_{t} \right)}} \right)}}}}} & {{Eq}.\mspace{14mu} 22}\end{matrix}$

An example implementation of GraphSLAM is illustrated in FIG. 12. Onegeneral approach is to first provide an initial estimate of the statevector Y at state 1210. This may be based on, for example, data from thedead reckoning sensors 190 or data from the signal sensors 170. Then theembodiment approximates motion model g(.) and sensor model h(.) bylinear models using Taylor expansion at the current estimate of thestate vector at state 1220. This results in a quadratic function of Eq.22. The linear equation system that reduces or minimizes the quadraticfunction obtained in state 1220 is solved or optimized at state 1230.This provides an improved estimate of Y. The second and third states arerepeated until the solution converges to a desired degree at state 1240.If sufficient convergence is not obtained, then optimization state 1230is repeated. If it is obtained, then at state 1250 a path is output.

The linear equation system may optionally be solved during optimizationstate 1230 using Conjugate Gradient, since the system is usually sparseand positive definite.

For providing an initial estimate of the state vector in state 1210, thefollowing method can be used. First, the initial device poses x₁ . . .x_(T) are computed from x₀=(0, 0, 0)^(T) by iteratively applying themotion model in Eq. 11 for each t=1 . . . T. Second, the initialrotational variability is c=ĉ where ĉ is a rough guess about the valuesof rotational variability that depend on the sensor 170. In the runningexample, some embodiments use ĉ=(0, 0)^(T) because the rotationalvariability is usually small. The initial node values m_(i) are computedfrom Eq. 1 and Eq. 2. For example, the parameters in Eq. 1 are computedby applying RANSAC over a short initial sequence, as discussed above.The node values m_(i) are then obtained from the node position b_(i)through Eq. 2.

The short initial sequence typically contains a minimum or relativelylow number of sensor samples (e.g., 2 to 50) while the mobile device 100moves a certain distance. This distance is usually proportional to thechosen cell size such that enough samples are available that cover areasonable fraction of the cell. For example, for a cell size of 1meter, the distance threshold may be selected within the range of 0.5 mto 1 meter. More generally, some embodiments may be configured to travela distance of ⅓ to ⅔ of the cell size. This distance may also depend onthe size of the mobile device 100: typically, larger mobile devicesshould travel further during the initialization phase. Optionally, agiven sample is spaced a minimum distance from an adjacent sample. Thisdistance may be determined based on a dynamically configuredinitialization travel distance and sample count, for example. It mayalso be fixed a priori so that samples are taken after every half secondof travel or after every 10 centimeters of travel, for example, althoughother time periods and distances may be used.

GraphSLAM may be implemented as a batch method since the motion andsensor data needs to be available when computing the non-linearoptimization. Furthermore, the amount of computation is significant.These constraints may make it difficult to use GraphSLAM in certainembedded systems with limited computational resources, such as if themobile device 100 is a conventional vacuum cleaner or other consumerproduct. GraphSLAM is nevertheless useful as a baseline algorithm forcomputing the best possible result given the sensor data and a chosenmodel. For example, it can be used during the development of products orselectively run when computational resources are available to check theperformance of other methods. Further, there are certain embodiments ofproduct mobile devices where there are sufficient computational andmemory resources to utilize GraphSLAM.

One such method for state estimation used by some embodiments is anExtended Kalman Filter (EKF). The EKF is a non-linear variant of theKalman Filter (KF). EKF-SLAM is an on-line SLAM method. The state vectorcontains the current pose of the device 100 but not older or futureposes (or estimates thereof). Furthermore, the size of the state growsas the mobile device 100 moves in the environment 110. Initially thestate contains only device pose, rotational variability and the nodeestimates of the 4 nodes of the initial cell.

$\begin{matrix}{y_{0} = \begin{pmatrix}x_{0} \\c \\m_{1} \\m_{2} \\m_{3} \\m_{4}\end{pmatrix}} & {{Eq}.\mspace{14mu} 23}\end{matrix}$

As the mobile device 100 moves around and visits further cells, thesystem grows by augmenting the state vector with further nodes. After ttime steps and visiting cells with a total of n nodes the state becomes:

$\begin{matrix}{y_{t} = {\begin{pmatrix}x_{t} \\c \\m_{1} \\\vdots \\m_{n}\end{pmatrix}.}} & {{Eq}.\mspace{14mu} 24}\end{matrix}$

The EKF computes an estimate of this state by maintaining mean andcovariance modeling a Gaussian distribution over the state.

y˜N(μ,Σ)  Eq. 25

The initial mean is set to Eq. 26, where ĉ is a rough guess/estimate ofthe rotational variability of the sensor 170 and {circumflex over (m)}₁. . . {circumflex over (m)}₄ are initial values of the four nodesobtained from sensor data of a short initial sequence as describedbefore using Eq. 1 and Eq. 2. Again, in a sample embodiment using spots180, the initial rotational variability can be set to ĉ=(0, 0)^(T).

$\begin{matrix}{\mu_{0} = \begin{pmatrix}x_{0} \\\hat{c} \\{\hat{m}}_{1} \\{\hat{m}}_{2} \\{\hat{m}}_{3} \\{\hat{m}}_{4}\end{pmatrix}} & {{Eq}.\mspace{14mu} 26}\end{matrix}$

The initial covariance is a diagonal matrix where the vehicleuncertainty is set to 0 and the uncertainties of rotational variabilityand the four initial nodes are infinite. For implementation on acomputer, ∞ can be replaced by a large number.

$\begin{matrix}{\Sigma_{0} = \begin{pmatrix}0 & \ldots & \ldots & \ldots & \ldots & \ldots & 0 \\\vdots & 0 & \ldots & \ldots & \ldots & \ldots & 0 \\\vdots & \vdots & 0 & \ldots & \ldots & \ldots & 0 \\\vdots & \vdots & \vdots & \infty & 0 & \ldots & 0 \\\vdots & \vdots & \vdots & 0 & \ddots & \ddots & \vdots \\\vdots & \vdots & \vdots & \vdots & \ddots & \ddots & 0 \\0 & 0 & 0 & 0 & \ldots & 0 & \infty\end{pmatrix}} & {{Eq}.\mspace{14mu} 27}\end{matrix}$

On object motion u_(t) with covariance R_(t), EKF-SLAM updates the stateas Eq. 28 and Eq. 29, where f extends the motion model g over all statevariables and F_(y) is its Jacobian with respect to state per Eq. 30 toEq. 31.

$\begin{matrix}{{\overset{\_}{\mu}}_{t} = {f\left( {\mu_{t - 1},u_{t}} \right)}} & {{Eq}.\mspace{14mu} 28} \\{{\overset{\_}{\Sigma}}_{t} = {{F_{y}\Sigma_{t - 1}F_{y}^{T}} + R_{t}}} & {{Eq}.\mspace{14mu} 29} \\{{f\left( {y_{t - 1},u_{t}} \right)} = {\begin{pmatrix}{g\left( {x_{t - 1},u_{t}} \right)} \\c \\m_{1} \\\vdots \\m_{N}\end{pmatrix}.}} & {{Eq}.\mspace{11mu} 30} \\{F_{y} = {\frac{\partial f}{\partial y}\left( {\mu_{t - 1},u_{t}} \right)}} & {{Eq}.\mspace{14mu} 31}\end{matrix}$

When a new sensor observation z_(t) with covariance Q_(t) is taken, thesystem determines the current cell, i.e. the cell in which the meanestimate of current device pose {circumflex over (x)}_(t) falls, andthen updates the mean and covariance of the state.

In general the current cell at time t can be:

1. A cell where all four nodes are already part of the state vector.

2. A cell where at least one node but not all four nodes are part of thestate vector.

3. A cell where none of the four nodes are in the state vector.

In the first case no changes are required to the state vector and thesystem can continue updating mean and covariance as described furtherbelow.

In the second and third cases, nodes not yet present in the state vectorneed to be added by augmenting the state with the new nodes. In general,adding a node to the state vector containing n nodes is achieved by Eq.32 and Eq. 33, where {circumflex over (m)}_(n+1) and M_(m+1) are themean and covariance of the new node. This mean and covariance can becomputed from nodes already contained in the state vector by linearextrapolation per Eq. 34 and Eq. 35, where A_(i), i=1 . . . n arematrices weighting the contribution of each node in the extrapolation, Mis the covariance over all nodes, and S is additional noise forinflating the new covariance to allow the new node to vary foraccommodating the non-linear structure of the wave signal. In someembodiments and in certain scenarios, the vector field changes slowlyover space (i.e., the signal is relatively constant). Thus, in suchembodiments, change between adjacent nodes is limited and extrapolationmight degenerate into a linear model. Some embodiments use a smaller Sin introduced in such circumstances, and some embodiments use introduceda larger S if the vector field is known or predicted to change morerapidly over space.

$\begin{matrix}\left. {\overset{\_}{\mu}}_{t}\leftarrow\begin{pmatrix}{\overset{\_}{\mu}}_{t} \\{\hat{m}}_{n + 1}\end{pmatrix} \right. & {{Eq}.\mspace{14mu} 32} \\\left. {\overset{\_}{\Sigma}}_{t}\leftarrow\begin{pmatrix}{\overset{\_}{\Sigma}}_{t} & 0 \\0 & M_{n + 1}\end{pmatrix} \right. & {{Eq}.\mspace{14mu} 33} \\{{\hat{m}}_{n + 1} = {\sum\limits_{i = 1}^{n}{A_{i}{\hat{m}}_{i}}}} & {{Eq}.\mspace{14mu} 34} \\{M_{n} = {{\begin{pmatrix}A_{1} & \ldots & A_{n}\end{pmatrix}{M\begin{pmatrix}A_{1} \\\vdots \\A_{n}\end{pmatrix}}} + S}} & {{Eq}.\mspace{14mu} 35}\end{matrix}$

The initialization of a new node is graphically illustrated in FIGS. 13and 14. In an embodiment, a new node 1330 is initialized by taking intoaccount the 8-neighborhood directions around the new node 1330, asillustrated in FIG. 13. As shown in FIG. 14, for each of the eightdirections, the two neighbors on the straight line from the new node1330 are used to extrapolate the mean and covariance of the new node.For any such pair the new node can be computed as shown in FIG. 14. Themean and covariance are computed from node j₁ 1340 and j₂ 1350 only.Both nodes contain the mean estimates of both sensor spots. Thecorresponding contribution matrices are:

$\begin{matrix}{{A_{j\; 1} = {{- \frac{1}{2}}\begin{pmatrix}1 & 0 & 1 & 0 \\0 & 1 & 0 & 1 \\1 & 0 & 1 & 0 \\0 & 1 & 0 & 1\end{pmatrix}}}{A_{j\; 2} = {\frac{1}{2}\begin{pmatrix}3 & 0 & 1 & 0 \\0 & 3 & 0 & 1 \\1 & 0 & 3 & 0 \\0 & 1 & 0 & 3\end{pmatrix}}}} & {{Eq}.\mspace{14mu} 36}\end{matrix}$

The extrapolation is such that the mid point between the spots 180 isused for extrapolation. The orientation of the line between the two newspot estimates is taken over from the closer one. This has the effectthat changes in orientation are not propagated when initializing newnodes.

Some embodiments optionally only consider cases where a new node can beinitialized from a pair of the 8 directions. In case there are severalpossible candidates, an embodiment may chose the one with the smallestresulting covariance M_(n). For comparing covariances, the matrixdeterminant, the trace of the matrix, its Frobenius norm, or other normscan be used.

If there are no neighbors for initialization, some embodiments discardthe sensor observation. Such a situation may occur, for example, whenthe mobile device 100 travels over a full cell without any sensor 170observations and then arrives in a cell where all four cells are not yetpart of the state vector (scenario 3, above). In this scenario, theutility of the new observation for localization may be minimal.Nonetheless, some embodiments may still initialize a new node by linearcombinations of other nodes in the state vector using Eq. 34 and Eq. 35.Some embodiments may optionally only use the motion updates (e.g., theodometry from the dead reckoning sensors 190) of the mobile device 100and wait until the device 100 returns to an existing cell or to a cellthat can be initialized. Another approach is to start over andre-initialize the system from the current pose.

Once the state vector contains elements for all nodes of the currentcell, the mean and covariance are updated with the measurement z_(t) andits covariance Q_(t) by application of the EKF equations per Eq. 37 toEq. 40 where h(y_(t)) is the sensor model defined in Eq. 18, H_(y) theJacobian of the sensor model and K the Kalman gain.

$\begin{matrix}{\mu_{t} = {{\overset{\_}{\mu}}_{t} + {K\left( {z_{t} - {h\left( {\overset{\_}{\mu}}_{t} \right)}} \right)}}} & {{Eq}.\mspace{14mu} 37} \\{\sum\limits_{t}{= {\left( {I - {K\; H_{y}}} \right)\underset{t}{\sum\limits^{\_}}}}} & {{Eq}.\mspace{14mu} 38} \\{H_{y} = {\frac{\partial}{\partial y}{h\left( {\overset{\_}{\mu}}_{t} \right)}}} & {{Eq}.\mspace{14mu} 39} \\{K = {\overset{\_}{\sum\limits_{t}}{H_{y}^{T}\left( {{H_{y}{\underset{t}{\sum\limits^{\_}}H_{y}^{T}}} + Q_{t}} \right)}^{- 1}}} & {{Eq}.\mspace{14mu} 40}\end{matrix}$

A flow chart of the EKF-SLAM method for object localization is shown inFIG. 15. At state 1510, the initial parameters are set per Eq. 26 andEq. 27. At the next time interval, if there is a motion update such asfrom the dead reckoning sensors 190 then it is applied at state 1530 perEq. 28 and Eq. 29. If there is a value from the signal sensor 170, andif a new cell is needed, it is initialized at state 1540 per Eq. 32 toEq. 36. After it is initialized, or if no new cell was needed, then asensor update is performed at state 1550 per Eq. 37 and Eq. 38. Afterany necessary updates, a new pose is output at state 1560 and theprocess continues with the next time period.

In general, EKF-SLAM has the advantage that it is an on-line method,integrating motion/odometry and signal sensor measurements as theyappear. The most computationally expensive operation is the update ofthe covariance matrix on sensor update in Eq. 38, state 1550. Thisinvolves the update of large numbers (e.g., all) of the matrix elements,an operation that takes time quadratic in the number of nodes in thestate.

In general, the covariance Σ_(t) is fully correlated. That is, there arefew, if any, elements that are zero. This typically requires holding thefull matrix in a data memory, which may limit the applicability of themethod for embedded systems or other environments if there are overlylimited memory resources.

An additional step in the EKF as well as in other filters is outlierrejection. In the case where measurements are received that seemimplausible, the filter rejects these measurements. This may beaccomplished by not updating the filter on such measurements, which maybe the result of hardware errors, signal interference, or irregulartiming problems, for example.

There are several options for detecting such outliers. For example, thesensor measurement itself can be examined for valid data. By way ofillustration, a threshold on the absolute magnitude of the signalstrength reported by a sensor if the range of allowable magnitudes forthe signal being detected is known. If the measurement falls below orabove this threshold it is rejected.

Another way to detect outliers is by comparing the received measurementz_(t) with the expected one h( μ _(t)). If the difference (e.g., asreported by means of the Mahanalobis distance, which is based oncorrelations between variables via which different patterns can beidentified and analyzed) is too large, the measurement is rejected.

Another approach used by some embodiments for state estimation is anExtended Information Filter (EIF). The EIF is similar to the ExtendedKalman Filter in that it models a Gaussian distribution over the statespace and processes motion and signal sensor data on-line. Itsparameterization, often called a dual representation, differs from thatused by EKF. The parameterization consists of an information vectorη_(t) and an information matrix Λ_(t) that are related to the mean μ_(t)and covariance Σ_(t) of the EKF in the following way:

η_(t)=Σ_(t) ⁻¹μ_(t)

Λ_(t)=Σ_(t) ⁻¹  Eq. 41

The EIF-SLAM algorithm processes data from the motion sensors 190 andsignal sensors 170 in the same way as EKF-SLAM described above. Thecomputation of information vector and information matrix on objectmotion and sensor measurement can be derived from Eq. 26 to Eq. 40 byinserting Eq. 41 and simplifying the resulting equations.

In general a direct application of the EIF-SLAM algorithm does notprovide a greater advantage than EKF-SLAM. Under some approximations,however, it is possible to keep the information matrix sparse, i.e. manyelements are zero, allowing for a more compact storage and moreefficient updates in terms of time and computational resources.

EIF-SLAM has the property that when inserting a signal sensor 170measurement, only those elements in the state the measurement depends onneed to be updated in the information matrix. For Vector Field SLAM thismeans that only elements related with the device 100's object pose androtational variability and with the four nodes of the current cell areupdated. All other elements in the information matrix stay unchanged.Therefore, the update on signal sensor 170 information turns only fewelements from zero into non-zero and generally preserves the sparsity ofthe information matrix.

However, the update on device motion (e.g., when new data from themotion sensors 190 is received) causes a full update of the wholeinformation matrix in the general case. This causes the informationmatrix to become non-zero in most if not all elements, which may destroyany sparsity that was present before the motion update.

Some embodiments may use strategies for approximating the update of theinformation matrix on device motion that preserve the sparsity of theinformation matrix. Two such methods are the Sparse Extended InformationFilter (SEIF) and the Exactly Sparse Extended Information Filter(ESEIF).

Yet another approach available to some embodiments for state estimationis ESEIF. The principle of the ESEIF algorithm is maintaining a set of“active features”. In the original context, “features” refer tolandmarks. In the case of Vector Field SLAM, the features are the nodes.The active features are a subset of all features. Typically thosefeatures that are currently observed by the mobile device 100 are theactive ones. Other features are called “passive”.

Only the active features contain cross-information between the pose ofthe device 100 and the feature (where the cross-information betweendevice pose and feature is non-zero for active features, whereas forpassive features this cross-information is zero). A feature can changeits state from passive to active at any time without the need of specialoperations. The cross-information between device pose and feature startsas zero and becomes non-zero when updating the system on device motion.

Changing an active feature to a passive one requires computationallynon-trivial operations that approximate the actual information matrix bya sparsification. ESEIF-SLAM conceptually integrates out the device poseand then re-localizes the device 100 using observations from only thosefeatures (nodes) that should stay or become active. By integrating outthe device pose, the state becomes free of the pose. Any uncertainty inthe device pose is moved into the feature estimates through thecross-information between device pose and feature. When re-localizingthe device 100, only the features used in the signal sensor 170observation then establish non-zero cross information. This way thesparseness of the information matrix is preserved.

The following describes an implementation of the ESEIF algorithm in thecontext of Vector Field SLAM. FIGS. 16-22 show information matricessupporting this description. Initially the system starts with 4 nodes,as in Eq. 23. The corresponding information matrix is shown in FIG. 16.Only the diagonal blocks in the information matrix contain informationand are non-zero, as indicated by black solid squares. All other entriesare zero (shown as white). The diagonal blocks refer to the device posex_(t), the rotational variability c and the initial 4 nodes m₁ . . . m₄.

In an example embodiment, as long as the object stays within thisinitial cell, the system updates the complete information matrix usingall 4 nodes as active features. Eventually the matrix becomes fullydense (most if not all elements become non-zero), as illustrated in FIG.17.

When the mobile device 100 moves out of the current cell and enters adifferent cell, the procedure of integrating out the device pose,initializing new nodes, and re-localizing the device takes place. First,the uncertainty of the device pose is integrated out. This movesinformation from the object pose into the rotational variability and the4 nodes through their cross information. The result is an informationmatrix as shown in FIG. 18, which usually contains stronger informationbetween nodes than before and lacks a device pose.

Next, new nodes are initialized and added to the state. For example, twonew nodes m₅ and m₆ may be added as shown in FIG. 19. This indicatesthat the device 100 moved into a neighboring cell sharing nodes m₃ andm₄ with the initial one. The processing necessary for the addition ofthese nodes is described below. Note that the description also appliesfor other situations where 1, 3, or 4 new nodes need to be added, or, inembodiments that use cells with greater than four nodes, more than fournew nodes need to be added.

The initial values for the information vector and matrix are obtainedsimilarly to Eq. 32 to Eq. 36, but in the information form as set out inEq. 41. The new information matrix then becomes the one as shown in FIG.19. Note that there is no cross information between the new nodes andother entries in the state.

The pose of the device 100 is then reintroduced. In the original ESEIFalgorithm, an object is localized through observations of activefeatures. In this application of Vector Field SLAM algorithm this isperformed in two steps. First, the state is augmented with the newdevice pose as shown in FIG. 19.

The entries for the new device pose in information vector and matrix arecomputed using Eq. 41 and the following mean and covariance per Eq. 42and Eq. 43, where R₀ is a parameter that increases the uncertainty ofthe new device pose. Thus, the new device pose stays unchanged butbecomes less certain. At this time there are no active nodes since allcross information between device pose and nodes are zero. Any four nodescan be chosen as the next active set of features. Since the device 100is in the cell defined by nodes m₃ . . . m₆, those nodes are chosen asthe next set of active features.

μ_(t)=μ_(t-1)  Eq. 42

Σ_(t)=Σ_(t-1) +R ₀  Eq. 43

On signal sensor measurement z_(t), the uncertainty of the device poseis reduced and elements related to rotational variability and the fouractive nodes m₃ . . . m₆ are updated. This creates new cross-informationbetween device pose, rotational variability, and active nodes as shownin FIG. 21. Note that there is no cross information between nodes m₁, m₂and nodes m₆, m₆. This shows how the information matrix stays sparse.

As the device 100 moves within the current cell, in this exampleembodiment optionally only the device pose, rotational variability, andactive cells m₃ . . . m₆ are updated, as was noted during the discussionof the initial situation. When the device 100 moves into another cell,the state is extended and the information vector and matrix areaugmented with new nodes as described above. If the new cell has beenvisited before, no new nodes need to be added to the state. In eithercase, the same procedure of integrating out device pose followed byre-localization takes place.

FIG. 22 shows the information matrix after a longer run of the systemconfigured as described. The state contains a total of 29 nodes. Thedevice pose (x, y, θ)^(T) consists of three variables, rotationalvariability (c_(x), c_(y))^(T) consists of two variables, and each node(m_(i,x1), m_(i,y1), m_(i,x2), m_(i,y2))^(T) consists of four variables.This leads to a total of 3+2+4*29=121 variables. Non-zero information isindicated by solid blocks whereas white areas are zero information. Thedevice pose contains cross information to the currently active nodesonly (around rows 80 and 110). On the other hand, rotational variabilitycontains cross information to all nodes. The nodes themselves havecross-information to spatially neighboring cells, which are at mosteight neighbors per node. Overall the matrix is significantly sparse.From the 121×121=14641 entries in the information matrix, only 3521 orapproximately 24% are non-zero. Furthermore since the matrix issymmetric, only the upper or lower half needs to be stored. This allowsfor compact storage and efficient computation within the ESEIF-SLAMalgorithm—an efficient use of computational resources.

The mathematical equations for motion update (e.g., from the deadreckoning motion sensors 190), signal sensor update (e.g., from thesensors 170), and sparsification can be formulated directly in theinformation space, i.e. only using η and Λ for storing the state betweenmotion and sensor updates. In addition an estimate of the mean μ isneeded for computing the Jacobians of motion and sensor model.

A flow chart of an example implementation of the ESEIF-SLAM algorithmfor object localization is shown in FIG. 23. It is similar to theEKF-SLAM algorithm, with an initialization state 2300, a motion updatestate 2310 if there is new motion (odometry) data, a signal update state2340 if there is new signal sensor data, preceded by a new-nodeinitialization state 2320 if new nodes are added, but also with anadditional sparsification state 2330 that integrates out device pose andre-localizes the device 100 when changing to another cell. Also, thereis another state 2350 for recovering the current mean μ_(t) from theinformation space by solving an equation system. After the solving state2350, a new device pose is produced at state 2360 and the processrepeats. This flow chart, like those illustrating the other algorithms,is illustrative. One of ordinary skill will make use of availableoptimizations when implementing an algorithm, including thesealgorithms.

The state vector as defined in Eq. 20 and Eq. 21 only contains one fieldfor rotational variability. This is under the assumption that rotationalvariability does not change with location and thus can be shared amongall nodes. There are, however, situations where this is not the case,e.g. when the error β_(ε) in Eq. 5 is significant and the approximationsin Eq. 7 to Eq. 9 introduce a larger error, or when the sensor 170 istilted due to uneven floor. There are different ways to deal withchanging rotational variability.

In one embodiment each node contains its own estimate of rotationalvariability. The state vector of full SLAM in Eq. 20 containing the fullobject path changes into Eq. 44, with similar changes for the state ofon-line SLAM in Eq. 21.

$\begin{matrix}{y = \begin{pmatrix}x_{1} \\\vdots \\x_{T} \\m_{1} \\c_{1} \\\vdots \\m_{N} \\c_{N}\end{pmatrix}} & {{Eq}.\mspace{14mu} 44}\end{matrix}$

The rotational variability is computed similar to the expected nodevalues by using bilinear interpolation per Eq. 45, where c_(i0), c_(i1),c_(i2) and C_(i3) are the rotational variability estimates at the fourcell nodes according to FIG. 11 and w₀, w₁, w₂ and w₃ are the weightsfrom Eq. 17. Using the obtained value for c the predicted measurement iscomputed as before using Eq. 18.

c=w ₀ c _(i0) +w ₁ c _(i1) +w ₂ c _(i2) +w ₃ c _(i3)  Eq. 45

Initial estimates of rotational variability are 0 with a co-variance oftotal uncertainty. When initializing new nodes, the same techniques asdescribed for initial mean and covariance of the node signal valuesapply for rotational variability.

The cost of storing rotational variability with each node is an increasein the number of state variables and therefore higher memory andrun-time consumption. This can limit the application of this solutionwhen computational resources are constrained.

In another embodiment, only one instance of rotational variability iskept, as originally defined in Eq. 20 and Eq. 21, but it is allowed tochange when the mobile device 100 moves. For EKF-SLAM this means that inthe motion model in Eq. 28 and Eq. 30, a component V_(t) is added to thesub-matrix of the rotational variability in the state covariance. V_(t)is an additive co-variance matrix modeling how much rotationalvariability is allowed to change when moving. It is usually a diagonalmatrix of constant values.

In another embodiment, V_(t)=0 as long as the device 100 stays within acell and V_(t) is set to a diagonal matrix with constant non-zero valueson the diagonal only when the device 100 changes between cells. This hasthe advantage that while the device 100 stays within a cell, rotationalvariability is assumed to be constant and is only allowed to change whenmoving into another cell. In some situations this may offer a betterapproximation at the cost of additional computation time, but requiresno significant additional computational space.

In another embodiment, V_(t) is used to allow a change in rotationalvariability when moving between cells in the ESEIF-SLAM system. In thesparsification state, the rotational variability is integrated out andre-localized as the device pose is. This is done because adding V_(t) inthe information space would otherwise fully populate the informationmatrix, destroying or reducing its sparseness. The states forsparsification with rotational variability included are analogous to thepreviously described method. An additional advantage of this approach isthe removal of cross-information between rotational variability andpassive nodes. This further reduces memory requirements and savescomputations, at least partially counteracting the additionalcomputation necessary to perform the calculations.

These methods and systems may also be used for detecting and estimating“drift” on, for example, carpet. When a mobile device 100 moves on acarpeted surface, the carpet exhibits a force onto the mobile device 100tending to slide or shift the mobile device 100 in a certain direction.This effect is caused by the directional grain, material, or otherproperties of the carpet. Other surfaces, such as lawns or artificialturf, may also exhibit similar properties.

The amount of this drift can be estimated by the localization filter indifferent ways. In one embodiment, the filter state in Eq. 24 isaugmented by two additional variables drift_(x) and drift_(y) thatrepresent the amount of carpet drift in the x and y direction of theglobal coordinate frame. The motion model in Eq. 11 then takes intoaccount these new parameters and the filter estimates their values atthe same time it estimates the other state variables.

In another embodiment, the mobile device 100 may be configured to move acertain distance forward followed by the same distance backward. Fromthe difference in the position output of the localization system at thebeginning and end of this sequence, the amount of carpet drift can beestimated because the carpet drift may be proportional to this positiondifference. Typically, such a distance would be small enough that it canbe traversed rapidly but large enough that an appreciable difference canbe detected and the results not obfuscated by noise. Some embodimentsmay use distances in the range of 10 cm to 2 meters. Some embodimentsmay use smaller distances. Some embodiments may use larger distances.

The systems and methods described above were evaluated by moving anindoor localization sensor 170, configured to detect infrared patterns180 projected from a beacon 160, along a rail. Ground truthinformation—the actual pose of the sensor 170—was directly availablefrom position and orientation sensors on the rail motor. Every 50 cm,sensed signal strength and other measurements were recorded with thesensor 170 in 8 different directions (every 45°), and approximately 50readings were taken for each of those directions. Once the sensor 170reached the end of the rail, it was moved 50 cm parallel to the previousrail line and another round of measurements was taken. This was repeateduntil a total of eight parallel tracks were completed. The previouslydiscussed FIG. 9 shows the experimental setup with the ground truthpositions of measurements. There is a wall 135 close to the rail at thetop location. There are also walls on the left 120 and right 130 of theexperimental space, but those walls are further from the sensor 170 thanthe upper wall 135 (at least when the sensor 170 is traversing the finalrail). These walls contribute to multi-path signals and cause asignificant disturbance of the sensor signal.

The previously discussed FIG. 10 shows the position of the sensor 170directly determined by a linear sensor model in this environment. Thecompression on the left, right and top end is significant: a systemusing this linear model would loose significant accuracy in poseestimation.

Using the recorded data, a path for a virtual mobile device 100 throughthe grid was generated. Starting in the lower left corner the objectmoves along the rows and changes between rows on the left and rightside. This results in a theoretically straightforward motion: along arow, a 90° turn at the end of the row, a brief movement to reach thenext row, and then another 90° turn before traversing that next row. Inpractice, when zero-mean Gaussian noise is added to the motioninformation (simulating real-world error after extended use ofdead-reckoning sensors), the odometry path is obtained as shown in FIG.24. After attempting to move up and down the rail grid approximately tentimes, the error in orientation is up to 90°: the mobile device isactually moving vertically when its own reckoning system indicates it ismoving horizontally.

The simulated relative pose data and the resulting odometry path areplausible examples of internal motion estimates. Mobile devices such asautonomous vacuum cleaners or other consumer products can show a similardegradation of pose estimation when using the integration of wheelencoder counts as the only method for pose estimation for example.

For testing the Vector Field SLAM system, one of the approximately 50sensor measurements from the ground truth pose was randomly chosen whenreaching a grid position. This measurement was then provided to the SLAMmethod for object localization. The cell size for Vector Field SLAM wasset to 1×1 meters. FIG. 25 shows the resulting object path. Although thefigures speak for themselves, the conclusion is that a mobile device 100equipped with a localization and mapping system as disclosed herein, canfollowing a navigational plan with a dramatically higher degree ofaccuracy than one relying on dead reckoning alone. This result wascomputed using an implementation of EKF-SLAM. Similar results wereobtained using GraphSLAM and ESEIF-SLAM implementations.

In another series of experiments, the accuracy of the individual VectorField SLAM implementations was compared to ground truth. In general, allthree methods provide higher accuracy than other methods that only uselinear sensor models. The GraphSLAM method usually provided slightlybetter accuracy than EKF-SLAM and ESEIF-SLAM. The latter two usuallyprovided similar accuracy. The absolute position error was determined todepend on several factors such as ceiling height and the size ofenvironments. In the test environment, the overall mean position errorwas about 6 cm. In general, the sources of error may vary depending onthe signal sources 180 used. For example, ceiling height may not be asignificant contributor to error if the background signal used isgenerated by magnetic coils suspended over the operating environment.

Vector Field SLAM also provides information about the learned sensormodel or map—the signal strength through the environment. FIGS. 26 and27 show the learned coordinates for a signal source, in this example aninfrared pattern 801 (the plots for a second infrared pattern or spot802 are similar and omitted). Error bars indicate the 2 sigma levels ofthe mean values at each node position. One can see how the sensor signalis bent towards the rear wall 135. This shape is accounted for by thepiece-wise approximation of the sensor signal.

A typical embodiment will run asynchronously in that a new time step isconsidered to occur whenever new data is available from signal sensor170. This may be as often as six or seven times a second. In someembodiments, new sensor data may be ignored if the embodiment is stillintegrating previously available data and generating new poseinformation. In some embodiments the localization processor may requestdata from the signal sensor 170 or otherwise indicate that it isavailable to process that data. Some embodiments may run synchronously,with new data provided at fixed and regular time intervals.

The systems and methods disclosed herein can be implemented in hardware,software, firmware, or a combination thereof. Software can includecompute readable instructions stored in memory (e.g., non-transitorymemory, such as solid state memory (e.g., ROM, EEPROM, FLASH, RAM),optical memory (e.g., a CD, DVD, Bluray disc, etc.), magnetic memory(e.g., a hard disc drive), etc., configured to implement the algorithmson a general purpose computer, special purpose processors, orcombinations thereof.

Disclosed is a technique to extend Vector Field SLAM of to work in largeenvironments in which multiple beacons are installed. As an example,FIG. 28 shows a typical home environment. Four navigation cubes eachprojecting two patterns onto the ceiling, each one of them referred toas Northstar beacons 2811, 2812, 2813, 2814, allow the robot to navigatethrough virtually the entire home. The Northstar spots are projectedonto the ceiling and are indicated by star and square icons. Obstaclesidentified by the robot are drawn in black. Units are in meters.

The complexity of Vector Field SLAM with respect to area size and numberof signals will be discussed. In order to keep memory and run-timerequirements relatively low, a decoupling of localization maps is used.An approximation is presented that allows the robot to travel betweenNorthstar beacon-covered areas each associated with its own signal map.

A dead reckoning technique can be used to estimate motion and/orpositioning. In one embodiment, the robot estimates relative motion byusing both wheel-odometry and a gyroscope so that it is able to move outof areas covered by beacons for extended periods of time. In oneembodiment, the gyroscope can correspond to a MEMS gyroscope. In oneembodiment, only a gyroscope with yaw is used.

Furthermore, as large environments increase the risk of the robotgetting stuck somewhere, and for letting the user pause or kidnap therobot (e.g. for maintenance), the system should be able to resumetreatment, such as cleaning, after these events. Treatment can include,but is not limited to, cleaning, wiping, sweeping, vacuuming, painting,spraying, planting, or the like. A tracking approach is formulated thatallows the robot to reposition itself in a previously mapped area whenoperation is resumed. The robot is localized by searching the vectorfield for positions that provide a signal vector similar to ameasurement taken by the robot. As the vector field does not need to bebijective, the measurement may fit to multiple places. Each suchposition is considered as a hypothesis, and is successively tracked oversome distance to confirm its correctness.

We evaluate extensions to Vector Field SLAM in large home environmentswith sizes ranging from 35 to 125 m² and with number of beacons from oneto four. However, additional beacons can be used. As the experimentsdemonstrate, an embodiment of is capable of keeping a robot localized inthese environments while computational and storage requirements aresimilar to those required when using only a single beacon.

The next section summarizes a method of Vector Field SLAM as describedin and in [12, 13]. A subsequent section describes extensions forallowing the method to work in large environments. Experimental resultsare later presented.

Vector Field SLAM

In Vector Field SLAM the spatial variation of continuous signals arelearnt and simultaneously used for localizing the robot. Examples ofcontinuous signals include the received signal strengths of WiFi basestations or the signals measured from active beacons. The particularphysical characteristics of the signals do not matter as long as thecontinuous signals can be uniquely identified, are relatively stationaryover time and change, preferably continuously, over space. In oneembodiment, the coordinates of two spots projected onto the ceiling areused as the continuous signals. It will be understood that thesecontinuous signals can be bursty or pulsed, such as provided by flashinginfrared LEDs. The signal field is represented as a regular grid affixednode positions b_(i)=(b_(i,x),b_(i,y))^(T), i=1 . . . N, where each nodem_(i)∈

^(M) holds the expected signal measurements of the robot when placed atb_(i) and pointing in a fixed orientation θ₀. Without loss ofgenerality, let θ₀=0 for an initial condition. Vector field and robotpose are then estimated through the application of simultaneouslocalization and mapping (SLAM).

The robot moves through a time series of poses x₀ . . . x_(T), x_(t)∈SE(2). Without loss of generality, x₀=(0, 0, 0)^(T) for an initialcondition. At each time step t=1 . . . T the robot receives a motioninput u_(t) with covariance R_(t) and a measurement z_(t) of thecontinuous signals with covariance Q_(t). Disclosed techniques considerthat the measurements are also affected by calibration parameters c ofthe sensor. These parameters can reflect for example a rotationalsensitivity in an antenna measuring WiFi signal strengths. In oneexample with an active beacon system, calibration c encodes a coordinateoffset caused by a small error in the ideal horizontal plane of thesensor.

A motion model defined by a function g describes the motion of the robotsince the previous time step:

x _(t) =g(x _(t-1) ,u _(t))+e _(u)  Eq. 46

where e_(u) is a zero mean error with covariance R_(t).

Furthermore, the sensor model defined by function h predicts anobservation given current robot pose, sensor calibration and vectorfield:

z _(t) =h(x _(t) ,c,m ₁ . . . m _(N))+e _(z)  Eq. 47

where e_(z) is a zero mean error with covariance Q_(t).

One particular sensor model is decomposed into a rotational and atranslational part as expressed in Eq. 48.

h(x _(t) ,c,m ₁ . . . m _(N))=h _(R)(h ₀(x,y,m ₁ . . . m _(N)),θ,c)  Eq.48

In Eq. 48, x_(t)=(x, y, θ) is the robot pose at time t, h_(R) is asensor-dependent, continuous function that rotates the expected signalvalues according to robot orientation θ and applies a correction basedon the sensor calibration c, and h₀ is a bilinear interpolation of theexpected signal values from the four nodes of the cell containing therobot (see FIG. 29) as expressed in Eq. 49.

$\begin{matrix}{{{h_{0}\left( {x,y,{m_{1}\mspace{14mu} \ldots \mspace{14mu} m_{N}}} \right)} = {\sum\limits_{J = 0}^{3}{w_{j}m_{i_{j}}}}}{with}} & {{Eq}.\mspace{14mu} 49} \\{w_{0} = \frac{\left( {b_{i_{1},x} - x} \right)\left( {b_{i_{2},y} - y} \right)}{\left( {b_{i_{1},x} - b_{i_{0},x}} \right)\left( {b_{i_{2},y} - y} \right)}} & {{Eq}.\mspace{14mu} 50} \\{w_{1} = \frac{\left( {x - b_{i_{0},x}} \right)\left( {b_{i_{2},y} - y} \right)}{\left( {b_{i_{1},x} - b_{i_{0},x}} \right)\left( {b_{i_{2},y} - b_{i_{0},y}} \right)}} & {{Eq}.\mspace{14mu} 51} \\{w_{2} = \frac{\left( {b_{i_{1},x} - x} \right)\left( {y - b_{i_{0},y}} \right)}{\left( {b_{i_{1},x} - b_{i_{0},x}} \right)\left( {b_{i_{2},y} - b_{i_{0},y}} \right)}} & {{Eq}.\mspace{14mu} 52} \\{w_{3} = \frac{\left( {x - b_{i_{0},x}} \right)\left( {y - b_{i_{0},y}} \right)}{\left( {b_{i_{1},x} - b_{i_{0},x}} \right)\left( {b_{i_{2},y} - b_{i_{0},y}} \right)}} & {{Eq}.\mspace{14mu} 53}\end{matrix}$

FIG. 29 illustrates bilinear interpolation from cell nodes. A1-dimensional vector field, that is, signal field, is illustrated. Fordimensions of 2 and higher, the bilinear interpolation is analogousaccording to Eq. 49.

By choosing a standard motion model [1] and a suitable initialization,the robot trajectory, the sensor calibration and the vector field can beestimated. U.S. patent application Ser. No. 12/940,937 presenteddifferent implementations of the foregoing model including off-linenon-linear optimization through GraphSLAM, an extended Kalman filter(EKF-SLAM) [12] and an exactly sparse extended information filter(ESEIF-SLAM) [13]. All methods show the ability to keep a robotlocalized in an environment of the size of a living room in which asingle Northstar beacon has been placed.

For running the method on an embedded platform, the ESEIF-SLAM variantis particularly interesting. The method is constant time, and spacegrows linear in the size of the area explored. This allows it to run ona low-end ARM7 processor clocked at 44 MHz with only 64 KByte of RAM.

Extensions to Large Environments

In order to extend Vector Field SLAM to large environments, severaladditions can be integrated into the Vector Field SLAM algorithm.

Space and Run-Time Complexity of ESEIF-SLAM

A closer look at the space and run-time complexities will now bediscussed. FIG. 30 shows a sample grid consisting of 8 cells that modelsa vector field over an environment. Information links exist betweennodes as they appear in an ESEIF-SLAM implementation.

As long as the robot stays within a cell, one embodiment of theESEIF-SLAM approach updates robot pose, sensor calibration and the fourcell nodes by integrating motion and sensor information. This results ininformation links between all involved variables, i.e. entries in theinformation matrix that correspond to robot pose, calibration, the fourcell nodes, and the cross information between all of them are, ingeneral, non-zero. In other words, the information matrix of a vectorfield of a single cell is fully dense.

When moving into a neighboring cell, the ESEIF approach performs asparsification step [14]. First, the process marginalizes over robotpose and sensor calibration. This removes them from the state vector andleaves the information matrix with only the node's information and theircross entries. Next, the process relocates robot and sensor calibrationusing a sensor measurement in the new cell, for example, as shown in[13].

The effect of this approach is that each node shares information with atmost eight neighboring ones as the links in FIG. 30 indicate. The nodescan be classified by the number of other nodes they link to. Only innerones (nodes 6, 7 and 10) have eight connections. Nodes at the borderhave either 7 (node 11), 5 (nodes 2, 3, 5, 8, 9 and 14) or only 3 links(nodes 1, 4, 12, 13 and 15). In practice, the average connectivity pernode is about 6. Of course this depends on the layout of theenvironment, for example, in an open room, the factor is larger as thereare relatively more inner nodes.

The space requirements for N nodes with signal dimension M can now beestimated. In the following, the robot and calibration variables areignored temporarily as they merely add a constant term. The ESEIF storesan information vector (size N M), an estimate of the mean (also size NM) and the sparse information matrix. The latter holds N informationmatrices of all nodes which, due to symmetry, each use a size of

$\frac{1}{2}{{M\left( {M + 1} \right)}.}$

The cross information can be stored in

${\frac{1}{2} \cdot 6}\; M^{2}$

where the factor ½ accounts for the fact that each link is sharedbetween two nodes. In total the space requirements for Vector Field SLAMusing the ESEIF are

$\begin{matrix}{{Space}_{ESEIF} \approx {{N\left( {{3\frac{1}{2}M^{2}} + {2\frac{1}{2}M}} \right)} + {{const}.}}} & {{Eq}.\mspace{14mu} 54}\end{matrix}$

As for run-time, ESEIF-SLAM is constant time, i.e. does not depend on N[13]. The most expensive operation is the recovery of a part of theestimated mean. In our formulation, we update robot pose, sensorcalibration and the four cell nodes. This involves solving a linearequation system in these variables with a symmetric and positivedefinite system matrix. Cholesky decomposition is used, which takes timecubic in the number of variables. If constant terms and factors areignored, the time complexity therefore is as expressed in Eq. 55

Time_(ESEIF) =O(M ³).  Eq. 55

Multiple Beacons Covering Large Environment

In order to cover a larger area, more beacons can be installed in theenvironment. In one situation, the signals of all beacons might bevisible at some location. If this were modeled without loss ofinformation, then the signal dimension M needs to be expanded to holdsignal values of all beacons. However, increasing M has a drastic effecton the space and run-time of our ESEIF formulation. When doubling thenumber of signals, the space increases by a factor of four (Eq. 54) andrun-time by a factor of 8 (Eq. 55).

However, most home environments have walls and rooms separating thespace into areas where at most one beacon is visible. In case the areasof beacons overlap, in one embodiment, information from all but onebeacon is ignored, e.g. using the beacon that provides the highestsignal certainty. In an alternative embodiment, information less thanall available beacons is used, such as, for example, the two beaconswith the highest signal certainty.

In one embodiment, a logic for switching from one beacon to another isdescribed as follows. For each beacon, the signal certainty is measured,e.g. the signal strength, that indicates how useful the beacon is forlocalization. Initially, the beacon showing the best such certainty isselected and used as the current beacon. From then on the certainties ofall available beacons are compared and after a beacon different from thecurrent one shows a larger value (for example, a signal strength that istwice as strong) the process can switch to that beacon and make it thecurrent one.

A natural choice of representing the environment is by using multiplelocalization maps, one for each area around a beacon. Whenever the robotswitches the current beacon using the logic described above, a newlocalization map is started, or, if the robot has already visited thearea before, it re-localizes in the corresponding localization map. Theindividual maps are allowed to overlap due to the hysteresis whenswitching the active beacon to another one. An example atlas of maps isshown in FIG. 31.

In a proper representation, the maps 3102, 3104, 3106 are linked byuncertain rigid-body transformations, i.e., they can rotate andtranslate slightly with respect to each other [15]. As long as theuncertainties associated with these transformations are small, each mapcan be anchored at a fixed global pose and the induced error moved intothe procedure when re-localizing the robot in a localization map.

In one embodiment, the relative pose uncertainty computed from odometryfrom when the robot left a map is maintained until the robot re-entersit. In practice, this uncertainty can be limited to a certain maximumvalue. The uncertainty is then added to the pose uncertainty of therobot in our relocation step of the ESEIF [13]. This, of course, canintroduce larger changes in the robot pose and should work well as longas the error when closing loops stays relatively small.

One advantage of processing in this manner is that the signal dimensionM stays the same as for a single beacon. Only the number N of nodes islarger for storing the additional maps.

One embodiment includes performing SLAM in a first area associated witha first map; performing SLAM in a second area associated with a secondmap; and performing position estimation in a third area outside of andbetween the first area and the second area, wherein in the third area,position estimation is performed with dead reckoning. Dead reckoning canbe performed using odometry and a gyroscope.

Optionally, a timer can be reset upon entry of the robot into the thirdarea, the time spent in the third area can be tracked with the timer,and the robot can be controlled to return to at least one of the firstarea or the second area after a predetermined elapsed time in the thirdarea.

In one embodiment, a controller further resets a timer upon entry of therobot into the third area from the first area or the second area;remembers which one of the first area or the second area the robot wasin prior to entry to the third area; tracks time spent in the third areawith the timer; and returns to the one of the first area or the secondarea from which the robot was in prior to entry to the third area afterelapsing of a predetermined time in the third area unless the robotenters an area in which SLAM can be performed at least with positioninginformation based on observations of a set of one or more continuoussignals.

In one embodiment, the controller further estimates a positionuncertainty of the robot while operating in the third area; and if theposition uncertainty is larger than a predetermined threshold, returnsthe robot to at least one of the first area or the second area. In oneembodiment, the controller further estimates a position uncertainty ofthe robot while operating in the third area; remembers which one of thefirst area or the second area the robot was in prior to entry to thethird area; and if the position uncertainty is larger than apredetermined threshold, returns the robot to the one of the first areaor the second area from which the robot was in prior to entry to thethird area.

In one embodiment, the controller is performs SLAM at least withpositioning information based on observations of a first set of one ormore continuous signals, and when in the second area, the controllerperforms SLAM at least with positioning information based onobservations of a second set of one or more continuous signals. In oneembodiment, the first set of one or more continuous signals and thesecond set of one or more continuous signals comprise reflections ofspots of infrared light. In one embodiment, the controller distinguishesamong the different reflections of spots of infrared light based onfrequency.

One embodiment includes a robot and a controller of the robot. Thecontroller associates observations of a first set of one or morecontinuous signals with a first map; associates observations of a secondset of one or more continuous signals with a second map, wherein thesecond map is maintained independently the first map; and switchesbetween performing simultaneous localization and mapping (SLAM) with thefirst map or performing SLAM with the second map based at least partlyon an observed signal strength of the first set or the second set.

In one embodiment, the controller observes a plurality of sets of one ormore continuous signals including the first set and the second set,wherein each of the plurality of observed sets is associated with aseparate map; determines that a largest observed signal strength of theplurality of observed sets is larger in magnitude than a signal strengthof a set currently being used for performing SLAM; and switches toperforming SLAM with the set with the largest observed signal strength.In one embodiment, the controller observes a plurality of sets of one ormore continuous signals including the first set and the second set,wherein each of the plurality of observed sets is associated with aseparate map; determines that a largest observed signal strength of theplurality of observed sets is at least a predetermined factor larger inmagnitude than a signal strength of a set currently being used forperforming SLAM; and switches to performing SLAM with the set with thelargest observed signal strength. For example, the predetermined factorcan be a factor of 2. Other values will be readily determined by one ofordinary skill in the art. In one embodiment, the first set of one ormore continuous signals and the second set of one or more continuoussignals include reflections of spots of infrared light. The controllercan distinguish among the different reflections of spots of infraredlight based on frequency.

Gyroscope for Improving Orientation Estimates

Any navigation system improves when integrating accurate informationabout the relative motion of the robot. In particular when the absoluteerror in orientation can be kept low, on-line SLAM filters like EKF-SLAMand ESEIF-SLAM are less likely to become inconsistent [17].

Through some basic experiments, we found that rotation or yaw computedfrom only wheels quickly becomes unreliable within a few meters, inparticular when the wheel base is small and the floor surface slippery.By integrating a gyroscope having yaw in the estimation of relativemotion, rotation errors can be kept within a few degrees for severalminutes of travel.

This allows the robot to navigate in areas not covered by any beacon,like at the outer perimeter or in the zone in between two distantbeacons. Although information from both sensors could be combined in aprobabilistic way, we found that using distance computed by wheels androtation measured by gyroscope provides satisfactory results.

The inputs of motor commands, wheel encoders and gyro measurements areanalyzed for detecting movement errors. Ideal velocity values of bothwheels are computed by a linear combination using system matrices withparameters depending on the detected error. One embodiment is differentin that wheel velocities are not computed but rather, the change indistance and rotation of the robot pose is directly provided. Oneembodiment is also simpler in that there is no need to adjust systemparameters for combining encoders and gyro data depending on themovement error.

FIG. 32 illustrates a flowchart for computing motion of a robot fromdata measured by odometry and a gyroscope (yaw). The disclosed method ofintegrating wheel encoders and gyroscope can be describedmathematically. Let the sensor input at time t consist of the distancesd_(l) and d_(r) measured by the left and right encoder, respectively,and the change in orientation α obtained from the gyroscope. A motioninput u_(t) as is then computed as expressed in Eq. 56

u _(t)=(d,α)^(T)  Eq. 56

In Eq. 56, the

$d = {\frac{1}{2}\left( {d_{l} + d_{r}} \right)}$

represents the average distance travelled of both wheels.

The robot pose x_(t) is then computed from the motion model in Eq. 46.See FIG. 32 for a flowchart of updating the robot pose from the motioninput.

A typical motion model is one in which the robot is traveling on astraight line of distance d in the forward direction followed by anin-place rotation about a as expressed in Eq. 57.

$\begin{matrix}{{g_{1}\left( {x_{t - 1},u_{t}} \right)} = {\begin{pmatrix}x_{t - 1} \\y_{t - 1} \\\theta_{t - 1}\end{pmatrix} + {\begin{pmatrix}{d\; \cos \; \theta_{t - 1}} \\{d\; \sin \; \theta_{t - 1}} \\\alpha\end{pmatrix}.}}} & {{Eq}.\mspace{14mu} 57}\end{matrix}$

See FIG. 33 for a graphical illustration of a robot moving on a straightline followed by an in-place rotation.

A different model assumes the robot is moving along an arc. For α≠0 thenew robot pose can be computed as expressed in Eq. 58.

$\begin{matrix}{{g_{2}\left( {x_{t - 1},u_{t}} \right)} = {\begin{pmatrix}x_{t - 1} \\y_{t - 1} \\\theta_{t - 1}\end{pmatrix} + {\begin{pmatrix}{\cos \; \theta_{t - 1}} & {{- \sin}\; \theta_{t - 1}} & 0 \\{\sin \; \theta_{t - 1}} & {\cos \; \theta_{t - 1}} & 0 \\0 & 0 & 1\end{pmatrix}\begin{pmatrix}{d\frac{\sin \; \alpha}{\alpha}} \\{d\frac{1 - {\cos \; \alpha}}{\alpha}} \\\alpha\end{pmatrix}}}} & {{Eq}.\mspace{14mu} 58}\end{matrix}$

See FIG. 34 for a graphical illustration of a robot moving along an arc.In the limit α=0 the computation is identical to the motion on astraight line.

Re-Localization for Resuming Navigation

In large environments, there is an increased risk of the robot becomingstuck in tight areas or in situations with many obstacles. Furthermore,for a cleaning robot it is desirable for the user to have an option forpausing and resuming the robot, e.g. for emptying the dust bin orchanging the cleaning pad. Once resumed, the robot should quickly findits position in the area already explored and continue with itsnavigation.

For finding its position and orientation, the robot needs to solve aglobal localization problem, also known as the kidnapped robot problem.It can be stated as follows: “Using at least one sensor measurementz_(t) 3502 find possible candidates of position and orientation wherethe measurement could have been taken.” In general, the number ofpossible poses can be zero, one, or many. FIGS. 35A, 35B and 36 showflowcharts of possible systems for such a re-localization of the robot.FIGS. 35A and 35B illustrate different views of the same process forrobot re-localization in which only one pose hypothesis is allowed. FIG.36 illustrates a process for robot re-localization in which multiplepose hypotheses are allowed. The processes begin with a measurementz_(t) 3502. The process attempts to find 3504 a pose hypothesis. Furtherdetails of process to find 3504 a pose hypothesis will be describedlater in connection with FIGS. 37 and 38.

In case no pose or multiple poses have been found 3506, the procedure ofFIG. 35A or 35B can be repeated using a new measurement z_(t). Usually,the robot should move before taking a new measurement as it is likelythat the same or a similar measurement is obtained when stationary.

In case exactly one pose 3508 was determined, the robot has beenre-localized and, in principle, could continue with its navigation. Itis, however, beneficial to verify the found pose before deciding thatthe robot is fully re-localized. For this verification step the foundpose candidate is tracked 3510 using further measurements and motionestimates. Such a tracking 3510 can be carried out, e.g. by using anextended Kalman filter (EKF). After the pose has been tracked over asufficient long distance or for a sufficient long time, the robot isconsidered as being fully re-localized.

The situation becomes more challenging when multiple possible posesmatch to the received measurement z_(t). One possible approach is totreat this case similar to the case when no pose hypothesis has beenfound, i.e. to wait for a new measurement and repeat the procedure (seeFIGS. 35A and 35B). In case the environment and sensor readings arehighly distinctive, i.e., there are only few ambiguous situations, thismethod can be very successful.

A different embodiment includes choosing one best pose 3602 among allfound candidates as illustrated in FIG. 36. In the context of VectorField SLAM, the map includes the signal values at pre-defined locations(nodes). The association of measurements to nodes is implicit bychoosing a grid cell in which the observation could have been taken(recall that signals carry a unique ID for identifying to which signalsource a measurement belongs to). Depending on the distribution of thesignals over the environment there can be multiple locations and cellsin which a measurement could have been received. Choosing a bestcandidate pose under these conditions is less obvious.

In yet another embodiment (not shown as a flowchart) the multiplehypotheses could be tracked individually using a multi-hypothesistracking (MHT) system. An example of such an approach is themulti-hypothesis localization and tracking approach by Arras et al.[20]. Eventually the number of hypotheses decreases as individual tracksare either confirmed and kept, or rejected and removed.

In one embodiment, the tracking of a pose is started after exactly onepose candidate has been found. Otherwise, the method retries using thescheme described above and shown in FIGS. 35A and 35B.

Before searching for pose candidates, a measurement z_(t) has to pass asignificance test that evaluates how well the measurement is suited forthe re-localization task. Basically, the measurement should contain richenough information for giving a hint about where it could have beentaken. The particular criteria employed depends on the sensor. It canbe, for example, a minimum signal strength received in all measuredsignals. A measurement that fails the test is discarded and the systemwaits for the next one.

In order to obtain a pose hypothesis in the vector field, a cell i and arobot pose x_(t)=(x, y, θ)^(T) contained in the cell are searched forthat match to the current measurement z_(t). Substituting Eq. 48 and Eq.49 into Eq. 47, Eq. 59 is obtained.

$\begin{matrix}{z_{t} = {{h_{R}\left( {{\sum\limits_{j = 0}^{3}{w_{j}m_{i_{j}}}},\theta,c} \right)} + e_{z}}} & {{Eq}.\mspace{14mu} 59}\end{matrix}$

In Eq. 59, w_(j) depends on the selected cell i and robot position (x,y)^(T) and m_(i) _(j) are the signal values at the four cell nodesaccording to FIG. 29.

The problem can be formulated as a constrained optimization problem. Letv(i, x, y, θ) be the difference between measurement and expected signalvalues:

$\begin{matrix}{{v\left( {i,x,y,\theta} \right)} = {z_{t} - {{h_{R}\left( {{\sum\limits_{j = 0}^{3}{w_{j}m_{i_{j}}}},\theta,c} \right)}.}}} & {{Eq}.\mspace{14mu} 60}\end{matrix}$

The optimal vector (i, x, y, θ) that minimizes the Mahalanobis distanceis sought as expressed in Eq. 61.

$\begin{matrix}{\left( {i,x,y,\theta} \right) = {\underset{({i,x,y,\theta})}{\arg \; \max}{v\left( {i,x,y,\theta} \right)}^{T}Q_{t}^{- 1}{v\left( {i,x,y,\theta} \right)}}} & {{Eq}.\mspace{14mu} 61}\end{matrix}$

An additional constraint is that position (x, y)^(T) falls into cell ias expressed in Eq. 62.

$\begin{matrix}{{b_{i_{0,x}} \leq x < b_{i_{1,x}}},{b_{i_{0,y}} \leq y < {b_{i_{2},y}.}}} & {{Eq}.\mspace{14mu} 62}\end{matrix}$

Note that the covariances of the nodes are ignored. It is assumed thatnodes in the map have converged reasonably enough such that their weightcan be ignored relative to the measurement covariance Q_(t). In casethere are nodes in the map with weak information, they should bediscarded for the purpose of re-localization. An extension to ourpreferred embodiment would be to include the node covariances in theMahalanobis distance (Eq. 61).

It is also possible to ignore the measurement covariance Q_(t), e.g. ifit is unknown or for simplicity. The Mahalanobis distance (Eq. 61) thenchanges to an unweighted least-squares problem:

$\begin{matrix}{\left( {i,x,y,\theta} \right) = {\underset{({i,x,y,\theta})}{\arg \; \min}{{v\left( {i,x,y,\theta} \right)}}}} & {{Eq}.\mspace{14mu} 63}\end{matrix}$

An approximation to (Eq. 61), that often works well in practice, is tofirst search for a cell candidate i, locate a position (x, y)^(T) insidethe found cell, and finally compute the orientation θ.

For finding cell candidates, we search the map of nodes m_(k), k=1 . . .N for the node that best matches to the observation z_(t). Recall thateach m_(k) holds the expected signal values at position b_(k) with afixed orientation θ₀=0. Since it is unknown at which orientation θ themeasurement z_(t) has been taken, the signal values are transformed intoan orientation independent space before comparing node and measurement.

Let l be a function that maps a vector of signal values z∈%

^(M) to a vector in the orientation independent space

^(L):

l:

^(M)→

^(L)  Eq. 64

The function l depends on the employed signals and sensors. In the(trivial) case where signal values do not depend on sensor orientation,l is the identity and L=M. In the case where signal values change withthe orientation of the sensor, the function l typically maps signalvectors to a sub space, thus L<M. We will provide two explicit examplesin our implementation using active beacons in Section 5.

The transformation l is applied to the nodes m_(k), k=1 . . . N of thevector field and to the current observation z_(t) corrected by thesensor calibration c. The difference v_(l)(k) between a node k and themeasurement is then defined as expressed in Eq. 65.

v _(l)(k)=l(h _(c) ⁻¹(z _(t) ,c))−l(m _(k))  Eq. 65

In Eq. 65, h_(c) ⁻¹ corrects measurement z_(t) using calibration c (seeSection 5). The calibration c is assumed to be known. Since the robot isre-localizing in a vector field that was learned before, calibration ccan be obtained from the last system state of Vector Field SLAM. It isalso possible to use a nominal value ĉ or to ignore calibration in caseits effects are negligible.

The best node k is then found as expressed in Eq. 66.

$\begin{matrix}{k = {\underset{k}{{\arg \; \min}\;}{v_{l}(k)}^{T}L\; H_{c}^{- 1}Q_{t}^{- 1}H_{c}^{{- 1},T}{L_{v_{l}}^{T}(k)}}} & {{Eq}.\mspace{14mu} 66}\end{matrix}$

In Eq. 66, L and H_(c) ⁻¹ are the Jacobians of l and h_(c) ⁻¹:

$\begin{matrix}{L = {\frac{\partial l}{\partial z}\left( {h_{c}^{- 1}\left( {z_{t},c} \right)} \right)}} & {{Eq}.\mspace{14mu} 67} \\{H_{c}^{- 1} = {\frac{\partial h_{c}^{- 1}}{\partial z}{\left( {z_{t},c} \right).}}} & {{Eq}.\mspace{14mu} 68}\end{matrix}$

As for the original optimization problem (Eq. 61), if the measurementcovariance Q_(t) is ignored, the problem simplifies to an unweightedleast-squares formulation:

$\begin{matrix}{k = {\underset{k}{\arg \; \min}{{{v_{l}(k)}}.}}} & {{Eq}.\mspace{14mu} 69}\end{matrix}$

The best node can be found by simply trying all nodes k=1 . . . N.

After the best node k has been determined, the cells connected to it areevaluated. There can be up to four cells that have node k as one of itscorners. Let these four cells be referred to as i^(k,j), j=1 . . . 4.For example for k=6 in FIG. 30 there are four cells i^(6,1), i^(6,2),i^(6,3), and i^(6,4) with node indices (6, 7, 10, 11), (5, 6, 9, 10),(2, 3, 6, 7) and (1, 2, 5, 6) that contain node 6.

Given a cell i we can define the difference v_(i)(x, y) of the signalvalues at location (x, y)^(T) to the measurement as expressed in Eq. 70.

$\begin{matrix}{{v_{i}\left( {x,y} \right)} = {{l\left( {h_{c}^{- 1}\left( {z_{t},c} \right)} \right)} - {\sum\limits_{j = 0}^{3}\; {w_{j}{l\left( m_{i_{j}} \right)}}}}} & {{Eq}.\mspace{14mu} 70}\end{matrix}$

In Eq. 70, w_(j) is defined as in Eq. 50 to Eq. 53. By expanding andrewriting terms, difference function v_(i) can be written as:

$\begin{matrix}{{{v_{i}\left( {x,y} \right)} = {{Axy} + {Bx} + {Cy} + D}}{where}} & {{Eq}.\mspace{14mu} 71} \\{A = \frac{{- {l\left( m_{i_{0}} \right)}} + {l\left( m_{i_{1}} \right)} + {l\left( m_{i_{2}} \right)} - {l\left( m_{i_{3}} \right)}}{\left( {b_{i_{1,x}} - b_{i_{0},x}} \right)\left( {b_{i_{2},y} - b_{i_{0},y}} \right)}} & {{Eq}.\mspace{14mu} 72} \\{B = \frac{{b_{i_{2},y}\left( {{l\left( m_{i_{0}} \right)} - {l\left( m_{i_{1}} \right)}} \right)} - {b_{i_{0},y}\left( {{l\left( m_{i_{2}} \right)} - {l\left( m_{i_{3}} \right)}} \right)}}{\left( {b_{i_{1,x}} - b_{i_{0},x}} \right)\left( {b_{i_{2},y} - b_{i_{0},y}} \right)}} & {{Eq}.\mspace{14mu} 73} \\{C = \frac{{b_{i_{1},x}\left( {{l\left( m_{i_{0}} \right)} - {l\left( m_{i_{2}} \right)}} \right)} - {b_{i_{0},x}\left( {{l\left( m_{i_{1}} \right)} - {l\left( m_{i_{3}} \right)}} \right)}}{\left( {b_{i_{1,x}} - b_{i_{0},x}} \right)\left( {b_{i_{2},y} - b_{i_{0},y}} \right)}} & {{Eq}.\mspace{14mu} 74}\end{matrix}$

$\begin{matrix}{D = {{l\left( {h_{c}^{- 1}\left( {z_{t},c} \right)} \right)} - \frac{\begin{matrix}{{b_{i_{1},x}\left( {{b_{i_{2},y}{l\left( m_{i_{0}} \right)}} - {b_{i_{0}y}{l\left( m_{i_{2}} \right)}}} \right)} -} \\{b_{i_{0},x}\left( {{b_{i_{2},y}{l\left( m_{i_{1}} \right)}} - {b_{i_{0},y}{l\left( m_{i_{3}} \right)}}} \right)}\end{matrix}}{\left( {b_{i_{1,x}} - b_{i_{0},x}} \right)\left( {b_{i_{2},y} - b_{i_{0},y}} \right)}}} & {{Eq}.\mspace{14mu} 75}\end{matrix}$

A position (x_(i), y_(i))^(T) can be obtained by minimizing theMahalanobis distance as expressed in Eq. 76.

$\begin{matrix}{\left( {x_{i},y_{i}} \right) = {\underset{({x,y})}{{\arg \; \min}\;}{v_{i}\left( {x,y} \right)}^{T}{LH}_{c}^{- 1}Q_{t}^{- 1}H_{c}^{{- 1},T}L^{T}{v_{i}\left( {x,y} \right)}}} & {{Eq}.\mspace{14mu} 76}\end{matrix}$

Alternatively, a position (x_(i), y_(i))^(T) can be obtained withoutusing measurement covariance Q_(t) as expressed in Eq. 77.

$\begin{matrix}{\left( {x_{i},y_{i}} \right) = {\underset{({x,y})}{\arg \; \min}{{{v_{i}\left( {x,y} \right)}}.}}} & {{Eq}.\mspace{14mu} 77}\end{matrix}$

Position (x_(i), y_(i))^(T) can be found by non-linear optimization,e.g. using the Levenberg-Marquardt algorithm. In the following we focuson a particular case of the function l where the orientation independentspace

^(L) has dimension L=2. The minimum of Eq. 76 and Eq. 77 can then befound by setting

v _(i)(x _(i) ,y _(i))=0.  Eq. 78

Except for degenerated cases, there are two unique solutions which areobtained using the quadratic formula. Let these solutions be (x_(i,1),y_(i,1)) and (x_(i,2), y_(i,2)).

For each cell i∈{i^(k,j)|j=1 . . . 4} we obtain such a pair ofpositions. A test that a unique solution has been found can be performedby verifying Eq. 62 with each found position. In case there is one andonly one position satisfying Eq. 62 it can be concluded that cell androbot position has been found. Otherwise, the measurement is rejectedand the process is repeated with the next measurement according to FIG.35A or 35B.

Having found cell and robot position, the last missing information isthe orientation θ. We can find θ by solving the original optimizationproblem defined in Eq. 61 and Eq. 63 where i, x and y are given by thealgorithms above. The particular solution depends on the rotationalcomponent h_(R). We will provide an example in Section 5.

It should be noted that one embodiment might not find the global minimumdefined in Eq. 61 and Eq. 63 since for example the best node found inEq. 66 and Eq. 69 can be a local extremum. Furthermore, since in oneembodiment, only the cells at the best node are evaluated, there is noguarantee that a found pose is unique and that there are no other posecandidates in the vector field matching to measurement z_(t). It istherefore preferable to confirm the found pose by tracking it for sometime.

Using the found pose x_(t)=(x, y, θ)^(T) we start a localization filterbased on an EKF that tracks the robot pose from the found location. Onrobot motion u_(t), the robot pose is updated using the motion model ofEq. 46 but ignoring uncertainties:

x _(t) =g(x _(t-1) ,u _(t))  Eq. 79

When receiving a measurement z_(t), we setup a constant pose covarianceΣ _(xx) as a diagonal matrix. The elements of Σ _(xx) depend on therobot and sensor but are not critical. A typical choice is Σ_(xx)=diag(0.1² m², 0.1² m², 0.1²rad²). The Mahalanobis distance of themeasurement innovation is then computed as expressed in Eq. 80.

D ²(z _(t))=(z _(t) −h( y _(t)))^(T)Σ_(v) ⁻¹(z _(t) −h( y _(t)))  Eq. 80

In Eq. 80, Σ_(v) =H _(χ) Σ _(χχ)H_(χ) ^(T)+Q_(t) is the innovationcovariance, y _(t)=( x _(t), c, m₁ . . . m_(N)), h is defined as in Eq.48 and H_(χ) is its Jacobian with respect to robot pose:

$\begin{matrix}{H_{\chi} = {\frac{\partial h}{\partial x}{\left( {\overset{\_}{y}}_{t} \right).}}} & {{Eq}.\mspace{14mu} 81}\end{matrix}$

If the Mahalanobis distance falls above a threshold, i.e.D(z_(t))>D_(max), then the measurement z_(t) is rejected. A typicalthreshold is D_(max)=3. Otherwise the measurement z_(t) is accepted, andthe robot pose is updated using the EKF equation:

x _(t) = x _(t)+ Σ _(χχ) H _(χ) ^(T)Σ_(v) ⁻¹(z _(t) −h( y _(t))).  Eq.82

Rejected measurements are outliers either caused by excessivemeasurement noise or because they do not fit to the vector field aroundrobot pose x _(t). By counting the number of outliers C_(outlier) it canbe verified that the pose hypothesis is correct. If the count reaches amaximum number C. then the tracking filter failed and we restartre-ocalization using the next measurement according to FIG. 35A or 35B.

On the other hand, if C_(outlier)<C_(max) after traveling a certainminimum distance and integrating a certain minimum number ofmeasurements, it can be concluded that the tracking filter succeeded.The process can then switch back to Vector Field SLAM by using therelocation procedure of the ESEIF with the found robot pose and a largepose covariance.

Note that the tracking filter ignores to covariances associated with thenodes in the map. We try to compensate for this somewhat by always usingthe same constant pose covariance Σ _(χχ) when integrating measurements.Although this approach is not mathematically accurate, it is only usedover a short distance of robot travel and only to verify our posehypothesis. Thus, the consistency of this filter is not a primaryconcern. A property of the filter is that we only need to maintain therobot pose x_(t). This can be advantageous if we were to track severaldifferent pose hypotheses.

FIG. 37 is a flowchart illustrating a process for finding a posehypothesis. In a state 3702, the process selects the cell in which themeasurement z_(t) fits the best. For example, the measurement z_(t) canbe compared to the mean of the four nodes of each of the cells. In astate 3704, the process computes the position within the cell found inthe state 3702 where the measurement z_(t) fits best. For example, thequadratic formula of Eq. 78 can be used.

FIG. 38 is a flowchart illustrating an alternative process for finding apose hypothesis. In a state 3802, the process selects the node where themeasurement z_(t) fits best, via, for example, Eq. 66 and Eq. 69. In astate 3804, the process successively selects one of the four cellsconnected to the node. In a state 3806, the process computes theposition inside the selected cell where the measurement fits best, forexample, by using the quadratic formula of Eq. 78. The decision block3810 checks if there are more cells to investigate. In the state 3812,the process obtains the orientation for the found position.

In case there is more than one position found, the following can beperformed: (a) the best position is selected, (b) the measurement can berejected, and (c) all the found pose hypotheses can be outputted.

Implementation with Active Beacons

We have experimented with Vector Field SLAM and the foregoing extensionsfor large environments on a system using Northstar, a low-cost opticalsensing system for indoor localization [21]. A beacon projects a pair ofunique infrared patterns on the ceiling (see FIG. 1). The beacon can beplaced relatively freely in the room and adjusted such that it pointstowards the ceiling. The projected patterns carry a different frequencyencoded in the signal to ease the data association on the robot.Different Northstar beacons also provide different frequencies. Anoptical sensor on the robot detects these patterns and measures thedirection to both spots on the ceiling. The sensor then reports thecoordinates of both direction vectors projected onto the sensor plane,thus the signal dimension is M=4 and

z _(t)=(z _(χ) ₁ ,z _(y) ₁ ,z _(χ) ₂ ,z _(y) ₂ )^(T)  Eq. 83

The covariance Q_(t) can be derived from z_(t) along with two additionalsensor outputs measuring the signal strength. The signal strengths arealso used in the significance test in the re-localization procedure. Inorder to pass the test, the process requires that both spots aremeasured with a large enough intensity.

Under relatively good circumstances, the reported spot coordinateschange linearly with the robot position. However, infrared light reachesthe sensor not only by direct line-of-sight but also through multiplepaths by reflecting off walls and other objects, so the spot coordinateschange in a non-linear way as the robot approaches an obstructed area.

Due to tolerances in manufacturing and the mounting of the sensor on therobot, the sensor plane may not be perfectly horizontal. The result ofsuch small angular errors is well-approximated by a coordinate offsetfor both spots. When rotating the sensor in place, this offset becomesapparent as rotational variability. Thus, the calibration parametersare:

c=(c _(x) ,c _(y))^(T).  Eq. 84

In the ideal case, the offset vanishes, thus the nominal calibration isĉ=(0, 0)^(T).

The function h_(c) ⁻¹ for correcting measurements with respect tocalibration is as expressed in Eq. 85.

$\begin{matrix}{{h_{c}^{- 1}\left( {z_{t},c} \right)} = {\begin{pmatrix}z_{x\; 1} \\z_{y\; 1} \\z_{x\; 2} \\z_{y\; 2}\end{pmatrix} - \begin{pmatrix}c_{x} \\c_{y} \\c_{x} \\c_{y}\end{pmatrix}}} & {{Eq}.\mspace{14mu} 85}\end{matrix}$

The Jacobian of function h_(c) ⁻ is the identity matrix H_(c)⁻¹=I_(4×4).

When turning the sensor, the spot coordinates change according to therotation angle θ but in the opposite direction. The rotational componenth_(R) of our model then becomes as expressed in Eq. 86.

$\begin{matrix}{{h_{R}\left( {h_{x_{1}},h_{y_{1}},h_{x_{2}},h_{y_{2}},\theta,c_{x},c_{y}} \right)} = {{\begin{pmatrix}{\cos \; \theta} & {\sin \; \theta} & 0 & 0 \\{{- \sin}\; \theta} & {\cos \; \theta} & 0 & 0 \\0 & 0 & {\cos \; \theta} & {\sin \; \theta} \\0 & 0 & {{- \sin}\; \theta} & {\cos \; \theta}\end{pmatrix}\begin{pmatrix}h_{x\; 1} \\h_{y\; 1} \\h_{x\; 2} \\h_{y\; 2}\end{pmatrix}} + \begin{pmatrix}c_{x} \\c_{y} \\c_{x} \\c_{y}\end{pmatrix}}} & {{Eq}.\mspace{14mu} 86}\end{matrix}$

In Eq. 86, (h_(x) ₁ , h_(y) ₁ ,h_(x) ₂ , h_(y) ₂ )^(T) is the outputvector of Eq. 49.

For mapping signal values into the orientation independent space

^(L), we experimented with two different variants l₁ and l₂ defined asexpressed in Eq. 87 and Eq. 88.

$\begin{matrix}{{l_{1}\left( {m_{x\; 1},m_{y\; 1},m_{x\; 2},m_{y\; 2}} \right)} = \begin{pmatrix}\sqrt{m_{x\; 1}^{2} + m_{y\; 1}^{2}} \\\sqrt{m_{x\; 2}^{2} + m_{y\; 2}^{2}}\end{pmatrix}} & {{Eq}.\mspace{14mu} 87} \\{{l_{1}\left( {m_{x\; 1},m_{y\; 1},m_{x\; 2},m_{y\; 2}} \right)} = {\begin{pmatrix}{\cos \; \gamma} & {\sin \; \gamma} \\{{- \sin}\; \gamma} & {\cos \; \gamma}\end{pmatrix}\begin{pmatrix}\frac{m_{x\; 1} + m_{x\; 2}}{2} \\\frac{m_{y\; 1} + m_{y\; 2}}{2}\end{pmatrix}}} & {{Eq}.\mspace{14mu} 88}\end{matrix}$

In Eq. 88, γ is as expressed in Eq. 89.

$\begin{matrix}{\gamma = {\tan^{- 1}\frac{m_{y\; 1} - m_{y\; 2}}{m_{x\; 1} - m_{x\; 2}}}} & {{Eq}.\mspace{14mu} 89}\end{matrix}$

Function l₁ computes the distance to both spots, which does not dependon sensor orientation. The intuition behind l₂ is that the angle,between the measured spots does not depend on sensor orientation. Thecenter between the spots rotated by −γ, is then independent of sensororientation. Both functions map sensor values to

², i.e. L=2 which allows us to employ Eq. 78 when finding the robotposition that best matches to measurement Zt in a given cell.

Pickup Detection

When a robot is picked up by the user during normal operation of therobot, a system for detecting this pickup situation is useful. Such arobot can be, for example, an automatic floor cleaner or other floortreatment device, or a robotic toy. For example, a user may pick up anautonomous floor cleaner to resupply the cleaner with cleaning fluid, tochange a cloth or wiper, to empty out a receptable, etc. It would bedesirable to have the autonomous floor cleaner restart where it had leftoff (resume) rather than start all over again. Some existing pickupdetecting systems use for example switch sensors located at the wheels.As long as the robot is on the ground, the switch sensors at each wheelare closed due to the weight of the robot. When the robot is lifted, theswitches trigger and detect that the robot is in mid air.

While existing systems like the one described above are workingsolutions, they require a sensor at one or more wheels which increasesthe cost of the product. One embodiment instead does not use a specificsensor but reuses other sensors on the robot and a logic that detectsthe pickup situation.

One embodiment evaluates the signals of cliff sensors and a gyroscopefor detecting a pickup. Cliff sensors are installed in most roboticproducts in order to detect the edges of areas where the robot couldfall down. For example when moving closer and partly over the edge of astaircase leading downwards, these sensors trigger and provide the robotcontrol software an input for changing the direction of travel in ordernot to drive or fall down the stairs. A gyroscope can be used formeasuring the angular velocity in a robotic system. By integrating thedata provided by the gyroscope over time, the orientation (yaw) of therobot can be determined. The accuracy of this estimate is often muchbetter than those provided by other means, e.g. angular velocitydetermined by wheel odometers. It is therefore preferable to use agyroscope as part of the localization system of the robot.

Given a robotic system equipped with one or more cliff sensor and onegyroscope, one example of logic for detecting a pickup situation worksas follows. As long as any of the cliff sensors do not trigger, therobot is assumed to be on the surface or ground, that is, not picked-up.This logic uses the fact that in general it is not possible to pick upthe robot without triggering all cliff sensors. In the event where allcliff sensors trigger, further evaluation of sensor data is necessary.The robot either moved partly over the edge of a cliff or it might havebeen picked up. In order to detect in which of the two situations therobot is in, a specific pickup-detection procedure in the robot softwareis executed.

The pickup-detection procedure first stops the robot and then evaluatesthe angular velocity measurements of the gyroscope. If thesemeasurements indicate that the robot has a rotational velocity close tozero then no pickup is detected. The rationale behind this logic is thatwhen picking up the robot, a user usually causes rotations and otherdisturbances that result in rotational velocities either far from zeroor where the variance of the measured rotational velocity is large.

Results

For evaluating our extensions to Vector Field SLAM, we conducted aseries of experiments with a developer version of our Mint Cleaner robot[22]. All computations are performed on an ARM7 processor clocked at 44MHz with 64 Kbyte of RAM. We set the number of nodes to N=96 whichresults in a memory size for the localization maps of about 26 kBytes.This is roughly the maximum size we could afford for localization underthe tight memory constraints. The processing time for integrating amotion and a sensor measurement is about 50 ms. Localization updates areperformed while other control routines are also running on the CPU.

We tested our extensions in three different home environments with oneto four Northstar beacons. One of the maps obtained by the robot in oneof the runs is shown in FIG. 28. The robot navigated in these homes byfollowing a cleaning strategy based on systematically covering sectorsof the environment. As long as at least one beacon is visible to therobot, the strategy moves the robot onto a neighboring region until nospace is left to clean. At the end the robot follows along the perimeterof detected obstacles for a thorough cleaning around walls andfurniture.

As the robot moves through the environment it creates an occupancy gridmap using the position information from localization. This is mappingwith known poses [1]. Each visited cell is classified into one of thefollowing categories:

-   -   obstacles the robot bumped into,    -   floor changes, detected by two cliff sensors in the front of the        robot,    -   hazards, where the robot got stuck or had significant problems        in driving, and    -   free space the robot was able to traverse without a collision.

TABLE 1 Statistics of occupancy and visibility in environments Mean StdMin Max Occupied (%) 21.13 4.25 16.56 28.78 NS visible (%) 55.64 10.2742.51 74.33 NS not visible (%) 23.21 9.71 6.63 37.83

We also encode the visibility to beacons in the free-space cells. FIG.28 displays only the cells that were classified as obstacles.

We carried out a total of 25 runs in the three environments and wevaried the number of beacons. Table 1 shows the statistics of theenvironments with respect to occupancy and visibility to beacons. Onaverage about 21% of an environment is occupied by obstacles, floorchanges or hazards. From roughly 56% of visited places at least onebeacon was visible (2 brightest levels of blue). The cleaning programcontinued to navigate in areas not covered by Northstar in about 23% ofthe total environment explored.

As we do not have ground truth information of the robot poses during theruns, we use the following two metrics for evaluating the performance ofour navigation system:

-   -   Double walls: if the localization of the robot were perfect, the        map obtained by the robot would show obstacles and walls exactly        once at the correct places. While we do not know the exact        positions of walls, we can still verify that each of them is        mapped exactly once. Thus by measuring the percentage of walls        mapped more than once, we obtain an indication of how well the        robot was localized.    -   Maximum angular error: similarly as we usually know the global        orientation of walls, we can measure the angle of the wall in        the map showing the largest deviation from the nominal one.

TABLE 2 Localization statistics of runs Mean Std Min Max Double walls(%) 4.15 3.12 0 10.17 Max angular error (deg) 9.48 5.23 1.91 23.19Number of pause/resume 0.55 1.65 0 7

Table 2 shows our findings for the 25 runs. On average we obtain about4% of wrongly placed walls. In some cases there were none, while inothers there can be as much as 10% of additional obstacles. The robotwas paused and resumed during some runs as well, because either the userwanted to change the cleaning cloth or the robot got stuck (in somecases as many as 7 times. In either case, the robot was not necessarilystarted near the location where it was paused.

The angular error is, on average, about 9.5° with outliers going aslarge as 23°. While this seems significant, it does not always lead to acatastrophic failure. Often the map of the environment is bent along itsmain direction. The robot is still able to successfully navigate fromone side of the environment to the other one by changing its orientationalong the path according to the learned localization map. Only whentrying to close a loop over a longer trajectory with a larger error inrotation, the method is likely to fail.

We also evaluated how much of the environment our cleaning algorithmwill explore when varying the number of beacons in the environment forone of the testing environments. Recall that the cleaning strategy onlymoves on as long as any of the beacons stays visible. FIG. 39 shows thearea covered as a function of the number of beacons used.

As expected, the more beacons there are, the larger the area the robotcan explore. Note that when placing four beacons in the environment therobot hits the physical boundaries of the home. If the environment werelarger then the robot is likely to move on and cover more space.

FIG. 40A illustrates experimental results for position error in meters.FIG. 40A shows the mean position error of the localization approach onthe three different map sizes and the two different functions l₁ and l₂for mapping signal values to the orientation-invariant space, while alsovarying the tracking distance used for a successful localization. Thezero tracking distance has a special meaning where as soon as ameasurement generated a unique pose estimate no further verification viathe EKF was performed. A minimum number of measurements is not enforcedsince in the experiment, the data contains a continuous stream of about6 to 7 readings per second and the robot was traveling at an averagespeed of about 0.25 meter per second. Thus, a required minimum trackingdistance also enforces an adequate minimum number of readings.

Our results show that when using the l₁ mapping function, the initialpose estimate without tracking can be quite off. As soon as we track thepose over a short distance, the accuracy improves. When using the l₂function, the initial positions are much better. In general, theaccuracy improves when tracking the pose over a longer distance, whichis what we expected. The position error varies among the different mapsizes which is also due to the different mean errors of the learnedmaps. For the l₂ orientation invariant mapping we achieve an accuracybetween 10 and 35 cm depending on map size and required trackingdistance.

We can also look at the position errors by computing the percentage ofposition errors falling above a maximum error. As threshold we use 1meter, the cell size of the vector fields. If the position is off bymore than the threshold, a resume of the robot mission can cause asub-optimal behavior. FIG. 40B illustrates experimental results forposition errors in percentages of errors above 1 meter. Similar to theposition errors, the percentages drop quickly when tracking the robotpose over a short distance. Independent of which mapping function isused, the rates converge to similar values after tracking over a longerdistance. For the l₂ function the rate is between 1 and 4%.

Pose:

A pose is a position and orientation in space. In three dimensions, posecan refer to a position (x, y, z) and an orientation (α, β, θ) withrespect to the axes of the three-dimensional space. In two dimensions,pose can refer to a position (x, y) in a plane and an orientation θrelative to the normal to the plane.

Optical Sensor:

An optical sensor is a sensor that uses light to detect a condition anddescribe the condition quantitatively. In general, an optical sensorrefers to a sensor that can measure one or more physical characteristicsof a light source. Such physical characteristics can include the numberof photons, the position of the light on the sensor, the color of thelight, and the like.

Position-Sensitive Detector:

A position-sensitive detector, also known as a position sensing detectoror a PSD, is an optical sensor that can measure the centroid of anincident light source, typically in one or two dimensions. For example,a PSD can convert an incident light spot into relatively continuousposition data.

Imager:

An imager refers to an optical sensor that can measure light on anactive area of the sensor and can measure optical signals along at leastone axis or dimension. For example, a photo array can be defined as aone-dimensional imager, and a duo-lateral PSD can be defined as atwo-dimensional imager.

Camera:

A camera typically refers to a device including one or more imagers, oneor more lenses, and associated support circuitry. Optionally, a cameracan also include one or more optical filters and a housing or casing.

PSD Camera:

A PSD camera is a camera that uses a PSD.

Projector:

A projector refers to an apparatus that projects light. A projectorincludes an emitter, a power source, and associated support circuitry. Aprojector can project one or more light spots on a surface.

Spot:

A spot refers to a projection of light on a surface. A spot cancorrespond to an entire projection, or can correspond to only part of anentire projection.

Optical Position Sensor:

An optical position sensor is a device that includes one or morecameras, a signal processing unit, a power supply, and support circuitryand can estimate its position, distance, angle, or pose relative to oneor more spots.

Embodiments advantageously use active optical beacons in positionestimation. Advantageously, disclosed techniques minimize or reduce theline-of-sight limitation of conventional active optical beacon-basedlocalization by projecting the light sources onto a surface that isobservable from a relatively large portion of the environment. It willbe understood that the light sources can include sources of light thatare not visible to the naked eye, such as, for example, infrared (IR)sources. For example, in an indoor environment, it can be advantageousto project the emitted light from the beacon onto the ceiling. In manyindoor environments, the ceiling of a room is observable from mostlocations with the room.

As an illustration, one can consider an application of the method andapparatus for an autonomous mobile robot such as a robotic vacuumcleaner. A common approach to self-docking and self-charging is to placeactive infrared (IR) beacons on the charging station, which the robotcan sense with photo detectors, and use the associated sensoryinformation to find the docking station. This approach suffers fromline-of-sight limitations. If the robot and the docking station do nothave line-of-sight separation, the robot cannot find its positionrelative to the docking station.

In one embodiment, the IR emitter can advantageously be placed in such away that it projects onto the ceiling above the docking station, and arobot can have a photo detector that generally faces the ceiling or iscapable of observing the ceiling. The robot can advantageously observethe IR projection on the ceiling even in the absence of line-of-sightseparation between the robot and the docking station. In relatively manysituations, the robot has a line-of-sight view of the ceiling, whichenables the robot to detect the IR projection and move to the dockingstation for self-charging.

The method and apparatus described herein include numerous variationsthat differ in the type and number of active beacons used, differ in thetype and number of optical sensors used for detection of reflectedlight, and differ in the type of signal processing used to determine thepose of an object. Embodiments of the method and apparatus includesystems for estimation of the distance of an object relative to anotherobject, estimation of the bearing of an object relative to anotherobject, estimation of the (x, y) position of an object in atwo-dimensional plane, estimation of the (x, y, z) position of an objectin three-dimensional space, estimation of the position and orientationof an object in two dimensions or in three dimensions, estimation of thelinear or angular velocity of an object, and estimation of the linear orangular acceleration of an object.

Embodiments of the method and apparatus are related to estimation of theposition and orientation of a device, such as a mobile robot, relativeto a global or a local coordinate system. The apparatus includes one ormore optical sensors, one or more optical emitters, and signalprocessing circuitry. The initial position and orientations of thesensors can be unknown, and the apparatus and methods can be used tomeasure or estimate the position and orientation of one or more of thesensors and the position of the emitter projections on a surface.

In one embodiment, an optical sensor measures the optical signalsgenerated by the optical emitters that are within the sensor's field ofview by measuring the light that is projected onto a surface. Bycontrast, in a conventional system, such optical devices for distance orposition measurement disadvantageously require line-of-sight between theemitter and the sensor. Advantageously, embodiments described herein candetect optical signals projected onto a surface, such as a ceiling of anindoor environment. The optical emitters can be configured to projectone or more spots of light onto a surface that is observable by a sensorfrom a relatively large portion of the environment. The sensor detectsthe spot and estimates the sensor's position relative to the spot. Thesensor can measure quantities such as the position of the spot in thesensor's reference frame and the intensity of the signal generated bythe spot, and can associate a unique identifier with each spot. Eachsuch measurement or set of measurements defines a relationship betweenthe position of the sensor and the position of the spot. Using multiplesuch relationships defined between one or more sensors and one or morespots, signal processing circuitry can estimate the pose of at least oneof the sensors, and, optionally, the position of one or more spots.

Embodiments of the method and apparatus described herein can vary in thenumber and type of optical sensors used, can vary in the number and typeof optical emitters used, can vary in the projection of the light ontothe sensor via, optionally, one or more spots, and can vary in themethods used for estimation of the distance, heading, position,orientation, velocity, angular velocity, acceleration, and angularacceleration of the sensor or sensors. For example, a light spot can begenerated by an IR sensor that emits IR light onto a surface, and aphoto detector can be used to detect the light reflected from thesurface. With one emitter and one sensor, the distance and relativeheading to the projected light can be measured. With two emitters andone two-dimensional sensor, the position of the sensor in a plane andthe rotation of the sensor around an axis normal to that plane can bemeasured.

Embodiments of the method and apparatus described herein can use a widevariety of optical sensors. Some embodiments use digital or analogimaging or video cameras, such as CMOS imagers, CCD imagers, and thelike. Other embodiments use PSDs, such as one-dimensional PSDs, angularone-dimensional PSDs, two-dimensional PSDs, quad PSDs, duo-lateral PSDs,tetra-lateral PSDs, and the like. Other embodiments use photo detectors.

In one embodiment, the optical sensor is combined with a lens and one ormore optical filters to form a camera. For example, a PSD sensor can beenclosed in a casing with an open side that fits the lens and opticalfilters to filter incoming light and reduce effects of ambient light.

Embodiments of the method and apparatus described herein can also use awide variety of optical emitters, including visible light devices,invisible light devices, laser light devices, infrared light devices,polarized light devices, light-emitting diodes (LEDs), laser diodes,light bulbs, halogen lights, projectors, and the like.

One embodiment of the method and apparatus described herein uses onetwo-dimensional PSD camera and a plurality of infrared (IR) emitters.Each IR emitter projects a spot onto the ceiling in a room. Each emitteris modulated with a unique pattern or frequency. The PSD camera ismounted, on a robot, for example, and faces the ceiling in such a waythat its field of view intersects at least a portion of the plane thatdefines the ceiling onto which the spots are projected. The PSD cameraprovides an indication of the projected position of each observable spotin the camera sensor coordinates. In the illustrated embodiment, theposition of each observed spot is defined as its centroid.

A camera position of each observed spot can correspond to the projectionof a spot's position onto the image plane of the camera as defined by acorresponding perspective transformation. The PSD camera can measure thecamera position of each spot. Using the measured camera positions of thespot and information related to the distance between the spots, theposition (x, y) of the PSD camera in one plane and the rotation (θ) ofthe PSD camera around an axis normal to that plane can be determined.The position and orientation of the camera defined by (x, y, θ) is knownas the pose of the camera.

For example, the PSD camera can be coupled to a mobile device such as arobot, and the device's pose can advantageously be relatively accuratelydetermined within a room with two or more spots. Pose estimation, alsoknown as localization, is an important component in many applications,including automated vacuuming, automated floor cleaning, telepresence,security, and entertainment. Without accurate position estimates, it isrelatively difficult or impossible for a conventional robot to execute apath or trajectory because the conventional robot's internal positionestimate tends to drift, and the conventional robot is generally unableto measure or account for the drift. For systematic floor coverage in arobotic vacuum cleaner, for example, a conventional robot without theability to localize generally cannot maintain knowledge of the areas ithas cleaned and the areas it has not cleaned, and the robot is thereforerelatively likely to clean the same areas repeatedly and inefficientlyand is relatively unlikely to clean other areas with sufficientfrequency. Accordingly, many conventional robotic vacuum cleanersexecute a random trajectory. By contrast, a robotic vacuum cleaneraccording to an embodiment with the ability to localize in a relativelyaccurate manner can follow a relatively efficient planned path. Arobotic vacuum cleaner according to an embodiment can clean a room in arelatively efficient manner because it can track its path and canexecute a planned, traversable path. Similarly, a mobile robot with theability to localize can navigate to a desirable location and maintain ahistory of paths that it has taken.

Another embodiment of the method and apparatus described herein uses onetwo-dimensional PSD camera and one IR emitter. The IR emitter projects aspot on the ceiling, and the PSD camera faces the ceiling such that itsfield of view intersects at least a portion of the plane that definesthe ceiling onto which the spot is projected. The PSD camera can provideindications for a measurement of the distance from the camera to thespot and the heading from the camera to the spot relative to the tangentof the circle with radius defined by the distance measurement. Thedistance measurement defines a circle centered at the spot projectedonto the plane of the camera. In one example, the illustrated embodimentcan be used for an application in which it is desired to position adevice relative to the spot. Advantageously, when the camera isunderneath the spot on the ceiling, then the camera position is at thecenter of the PSD camera. For example, if the spot is projected over acharging station, a mobile device can approach the charging station andrecharge autonomously. In a related embodiment that further compriseswheel encoders, a robotic vacuum cleaner can move along concentriccircles or move along a spiral to implement a floor coverage strategythat is relatively efficient, compared to a random coverage strategy.

Examples of embodiments will now be described. FIG. 41 illustrates ablock diagram of components of one embodiment of an apparatus. Theapparatus includes a projector 4111 and an optical position sensor 4112.The projector 4111 emits a light pattern 4113 onto a surface 4116, whichcreates a projected light pattern 4119. In one embodiment, the lightpattern 4113 is modulated. The reflection 4114 of the projected lightpattern 4119 is projected onto the optical position sensor 4112.

The projector 4111 includes a light source 4102. By way of example, thelight source 4102 can correspond to a device, such as a laser device, aninfrared device, and the like, that can be modulated by a modulator4101. Optionally, the light from the light source 4102 can pass throughone or more lenses 4103 to project the light onto the surface 4116.

The optical position sensor 4112 includes a camera 4117 and a processingunit 4118. The camera 4117 can detect and measure the intensity andposition of the light 4114 reflected from the surface 4116 and cangenerate corresponding signals that are processed by the signalprocessing unit 4118 to estimate the position of the optical positionsensor 4112 relative to the projected light pattern 4119. It will beunderstood that the optical position sensor 4112 can include multiplecameras 4117 and/or multiple processing units 4118.

The camera 4117 includes an imager 4104. The imager 4104 can, forexample, correspond to a CMOS imager, a CCD imager, an infrared imager,and the like. The camera can optionally include an optical filter 4105and can optionally include a lens 4106. The lens 4106 can correspond toa normal lens or can correspond to a special lens, such as a wide-anglelens, a fish-eye lens, an omni-directional lens, and the like. Further,the lens 4106 can include reflective surfaces, such as planar,parabolic, or conical mirrors, which can be used to provide a relativelylarge field of view or multiple viewpoints. The lens 4106 collects thereflected light 4114 and projects it onto the imager 4104. The opticalfilter 4105 can constrain the wavelengths of light that pass from thelens 4106 to the imager 4104, which can advantageously be used to reducethe effect of ambient light, to narrow the range of light to match thewavelength of the light coming from the projector 4111, and/or to limitthe amount of light projected onto the imager 4104, which can limit theeffects of over-exposure or saturation. The filter 4105 can be placed infront of the lens 4106 or behind the lens 4106. It will be understoodthat the camera 4117 can include multiple imagers 4104, multiple opticalfilters 4105, and/or multiple lenses 4106.

The signal processing unit 4118 can include analog components and caninclude digital components for processing the signals generated by thecamera 4117. The major components of the signal processing unit 4118preferably include an amplifier 4107, a filter 4108, ananalog-to-digital converter 4109, and a microprocessor 4110, such as aperipheral interface controller, also known as a PIC. It will beunderstood that the signal processing unit 4118 can include multiplefilters 4108 and/or multiple microprocessors 4110.

Embodiments of the apparatus are not constrained to the specificimplementations of the projector 4111 or the optical position sensor4112 described herein. Other implementations, embodiments, andmodifications of the apparatus that do not depart from the true spiritand scope of the apparatus will be readily apparent to one of ordinaryskill in the art.

FIG. 42 illustrates an example of a use for the position estimationtechniques. An environment includes a ceiling 4206, a floor 4207, andone or more walls 4208. In the illustrated environment, a projector 4203is attached to a wall 4208. It will be understood that the projector4203 can have an internal power source, can plug into a wall outlet orboth. The projector 4203 projects a first spot 4204 and a second spot4205 onto the ceiling 4206. An optical position sensor 4202 is attachedto a robot 4201. The optical position sensor 202 can detect the spots4204, 4205 on the ceiling 4206 and measure the position (x, y) of therobot 4201 on the floor plane and the orientation θ of the robot 4201with respect to the normal to the floor plane. In one embodiment, thepose of the robot 4201 is measured relative to a global coordinatesystem.

FIG. 43 describes a geometrical model associated with one embodiment ofthe method and apparatus described earlier in connection with FIG. 42.The ceiling 4206 lies at a height h above the floor 4207. A point w₁4301 lies at the centroid of the first spot 4204, and a point w₂ 4302lies at the centroid of the second spot 4205. In the illustratedembodiment, a global coordinate system with an X axis, a Y axis, and a Zaxis is defined and is also referred to as the global reference frame.

In one embodiment, it is convenient to define the Y axis such that the Yaxis is parallel to the vector originating at the point w₁ 4301 andpassing through the point w₂ 4302. Additionally, it is convenient todefine the X axis such that the X axis is perpendicular to the Y axisand lies in the plane defined by the floor. Further, it is convenient todefine the Z axis such that the positive Z direction is specified by thecross product of the unit vector in the X direction with the unit vectorin the Y direction; in standard vector calculus notation, thisrelationship is expressed as {circumflex over (Z)}={circumflex over(X)}×Ŷ. Thus, in the illustrated coordinate system, the Z axis is normalto the floor plane and is directed from the floor to the ceiling. In theglobal coordinate system, an origin O is defined as the point havingcoordinates (0, 0, 0). Also in the global coordinate system, the pointw₁ 4301 is defined as having coordinates (x₁, y₁, h), and the point w₂4302 is defined as having coordinates (x₂, y₂, h). Further, it isconvenient to assume that the origin O is located directly below thepoint w₁ 4301, so that x₁=0 and y₁=0. Additionally, the definition ofthe X axis implies that x₂=0 as well. Thus, the point w₁ 4301 has thecoordinates (0, 0, h), and the point w₂ 4302 has the coordinates (0, y₂,h). It will be understood that the aforementioned definitions can bemade with no loss of generality.

A coordinate system relative to an imager is defined with a u axis, a vaxis, and a z axis and can be referred to as the camera coordinatesystem or the camera reference frame. In the illustrated embodiment, theimager corresponds to a two-dimensional PSD sensor. In one embodiment,the height of the PSD sensor off the floor plane is relatively smallcompared to the ceiling height h, so the PSD sensor and the origin ofthe camera coordinate system use the coordinates (x, y, 0) and theorientation θ in the global coordinate system. The displacement from theorigin of the global coordinate system to the origin of the cameracoordinate system is denoted S; thus, ∥S∥=√{square root over (x²+y²)},where ∥S∥ denotes the norm, or magnitude, of the vector S. The point c₁4311 represents the projection of the point w₁ 4301 onto the imager, andthe point c₂ 4312 represents the projection of the point w₂ 4302 ontothe imager. The point c₁ 4311 has the coordinates (u₁, v₁, 0) in thecamera reference frame, and the point c₂ 4312 has the coordinates (u₂,v₂, 0) in the camera reference frame. It will be understood that theaforementioned definitions can be made with no loss of generality.

In one embodiment, the spots 4204, 4205 can be identified using uniquesignals or unique signatures. For example, the emitters that produce thespots 4204, 4205 can be on-off modulated with different frequencies. Theemitter that produces the first spot 4204 can be modulated with a firstfrequency f₁, and the emitter that produces the second spot 4205 can bemodulated with a second frequency f₂, wherein the first frequency andthe second frequency are different; that is f₁≠f₂.

At this point, it should be noted that the ceiling height h and theseparation y₂ between the point w₁ 4301 and the point w₂ 4302 can bedetermined in a variety of ways. For example, if the mobile robot 4201using the optical position sensor is capable of producing wheel odometryestimates, then the robot 4201 can estimate h and y₂ using measurementsor observations of the points w₁ 4301 and w₂ 4302 from multiplepositions. Other appropriate techniques will be readily determined byone of ordinary skill in the art.

Exemplary Position Estimation Using the Method and Apparatus

With reference to the coordinate systems, distances, angles, and pointsdescribed earlier in connection with FIG. 43, the PSD camera can measurec₁ and c₂, which correspond to the projections of w₁ and w₂ onto the PSDsensor. In one embodiment, a goal of the method is to determine S, theposition of the PSD camera in the global reference frame.

In one embodiment, the PSD measures the coordinates of the centroid ofthe light projected onto the PSD by generating electrical currentproportional to the position and intensity of the light centroid. Theassociated processing can be accomplished in a wide variety of ways,including analog circuitry, digital circuits, hardware, software,firmware, and combinations thereof. For example, a microcontroller, amicroprocessor, a CPU, a general-purpose digital signal processor,dedicated hardware, and the like can be used.

To measure the centroids of multiple spots, a number of conditions arepreferable. First, the sensor preferably does not become saturated withlight, ambient or otherwise. In one embodiment, this is accomplished byusing optical filters to reduce or minimize unwanted light sources thatproject onto the active area of the PSD sensor and by biasing the PSD toincrease the light level at which it becomes saturated. Second, tomeasure the position of a particular light source reliably, it ispreferable to isolate the light source from other light sources byreducing or eliminating the effect of other light sources, which caninclude ambient light and light generated by other spots. One approachis to isolate one light source is to modulate the light source with aunique pattern such that it is distinguished from other light sources.If the i-th emitter on-off modulates the projected light with afrequency f, the PSD sensor can extract the signal generated byfiltering a signal using a band-pass filter with lower and upperfrequencies of f_(i)−w and f_(i)+w, respectively, where 2w correspondsto the width of the corresponding band-pass filter. The signalprocessing unit of the PSD can use the filter to suppress signals withfrequencies outside the frequency range defined by the band-pass filter.The filtering of the PSD signal can occur either before or after the PSDcurrents are converted into associated centroid positions. In oneembodiment, where the first emitter is modulated at a frequency f₁ andthe second emitter is modulated at a frequency f₂, and wherein f₁≠f₂,the signal processing unit filters the signal specified by f₁ to measurec₁, the centroid of the first spot, and filters the signal specified byf₂ to measure c₂, the centroid of the second spot.

Exemplary Method for Pose Estimation

In one embodiment, the apparatus includes N emitters, which project Nlight spots, and M cameras. The position of the i-th camera in theglobal reference frame is denoted herein by S_(i)=(x_(i), y_(i), z_(i)),and the rotational orientation of the i-th camera in the globalreference frame is denoted herein by R_(i)=(α_(i), β_(i), θ_(i)). Theposition of the j-th light spot is denoted herein by w_(j), and theposition of the projection of the j-th spot onto the i-th camera isdenoted herein by c_(i,j). Then, the following relationship relatesS_(i), w_(j), and c_(i,j).

c _(i,j) =P _(i) R _(i)(w _(j) −S _(i))  Eq. 90

In Eq. 90, R_(i) represents the three-degree-of-freedom rotationtransformation, which, in one embodiment, results from the compositionof three mutually orthogonal one-degree-of-freedom rotationtransformations, such as R_(i)=R_(α)R_(β)R_(θ). Also in Eq. 90, P_(i)represents the perspective transformation associated with the i-thcamera. Thus, Eq. 90 defines three equations for six unknowns, in whichthe unknowns are x_(i), y_(i), z_(i), α_(i), β_(i), and θ_(i). In asystem with N spots and M cameras, N×M such matrix equations can beformulated, but not all such equations are necessarily unique,independent, and non-degenerate. Thus, with two spots and one camera,values for x, y, and θ can be determined. To determine all six degreesof freedom, it is preferable to have a configuration of spots andcameras that generates at least six independent, non-degenerateequations analogous to Eq. 90.

Exemplary System with Two Emitters and One Camera

In one embodiment, the system includes two spots projected onto theceiling and one optical position sensor with one PSD camera. Therelationship between a spot w_(j) and its projection c_(j) in the PSDcamera reference frame is given by the following equation.

c _(j) =PR _(θ)(w _(i) −S)  Eq. 91

In Eq. 91, S represents the position of the PSD camera in the globalreference frame, and P represents the transformation from a point (X, Y,Z) in the global coordinate system to a point (u, v, z) in the PSDcamera reference frame. Also, for the purposes of this example, the zaxis of the camera coordinate system is aligned with the Z axis of theglobal coordinate system in the vertical direction. This implies thatR_(α) and R_(β) correspond to identity matrices; accordingly, R_(α) andR_(β) have been omitted from Eq. 91. In the case of a pinhole cameramodel, P corresponds to the scalar value λ/(λ−Z), where λ represents thefocal length of the camera. It will be understood that multiplication bya scalar value can also be achieved by multiplication by thecorresponding multiple of the appropriately-dimensioned identity matrix.Also in Eq. 91, R_(θ) can be represented by the following unitarymatrix.

$\begin{matrix}{R_{\theta} = \begin{pmatrix}{\cos \; \theta} & {\sin \; \theta} & 0 \\{{- \sin}\; \theta} & {\cos \; \theta} & 0 \\0 & 0 & 1\end{pmatrix}} & {{Eq}.\mspace{14mu} 92}\end{matrix}$

Eq. 91 can be re-written as follows.

w _(j) −S=R _(θ) ⁻¹ P ⁻¹ c _(j)  Eq. 93

In Eq. 93, P⁻¹ represents the inverse perspective transformation, andR_(θ) ¹ represents the inverse rotation transformation. When theposition of the i-th spot is associated with appropriate cameraparameters, such as the camera focal length in a pinhole camera model,then Eq. 93 defines two non-degenerate equations in three unknowns x, y,and θ for each measurement c_(j). Thus, the three variables, x, y, andθ, together determine the pose of the PSD camera.

Because two equations in three unknowns do not define a unique solutionfor the pose of the PSD camera, it is preferable to use more independentequations than unknowns. With two spots and one PSD camera, it ispossible to generate four equations in three unknowns as follows.

w ₁ −S=R _(θ) ⁻¹ P ⁻¹ c ₁  Eq. 94

w ₂ −S=R _(θ) ⁻¹ P ⁻¹ c ₂  Eq. 95

Eq. 94 relates the spot w₁ with its associated PSD camera position c₁,and Eq. 95 relates the spot w₂ with its associated PSD camera positionc₂. Subtracting Eq. 94 from Eq. 95 generates the following matrixequation expressed in Eq. 96.

w ₂ −w ₁ =R _(θ) ⁻¹ P ⁻¹(c ₂ −c ₁)  Eq. 96

Eq. 96 can be expanded as follows.

$\begin{matrix}{\begin{pmatrix}0 \\{\Delta \; y} \\0\end{pmatrix} = {R_{\theta}^{- 1}{P^{- 1}\begin{pmatrix}{\Delta \; u} \\{\Delta \; v} \\0\end{pmatrix}}}} & {{Eq}.\mspace{14mu} 97}\end{matrix}$

The matrix equation given in Eq. 97 expresses two non-degenerate linearequations. In Eq. 97, Δy=d=y₂−y₁, Δu=u₂−u₁, and Δv=v₂−v₁. As discussedearlier in connection with FIG. 43, d represents the distance thatseparates the two spots. Accordingly, the first of the twonon-degenerate linear equation defined by Eq. 97 is given by thefollowing.

0=P ⁻¹(Δu cos θ−Δv sin θ)  Eq. 98

Solving for θ in Eq. 98 gives θ=tan⁻¹(Δu/Δv), and substituting thisresult into Eq. 94 provides the following solution for S, the positionof the PSD camera in the global reference frame.

S=w ₁ −R _(θ) ⁻¹ P ⁻¹ c ₁|_(θ=tan) ⁻¹ _((Δu/Δv))  Eq. 99

Accordingly, the pose (x, y, θ) of the PSD camera as a function of themeasurements C₁ and c₂ can be determined using Eq. 98 and Eq. 99.

An Example of Using One Emitter and One Camera

In one embodiment, the system includes one spot projected onto theceiling and one optical position sensor with one PSD camera. Similar tothe relationship discussed earlier in connection with Eq. 91, therelationship between the spot w and its projection c in the PSD camerareference frame is given by the following equation.

c=PR _(θ)(w−S)  Eq. 100

Because the origin of the global coordinate system can be chosen,without loss of generality, such that the spot w is located directlyabove the origin, rearranging Eq. 100 provides the following solutionfor S.

w−S=R _(θ) ⁻¹ P ⁻¹ c  Eq. 101

Eq. 101 can be rewritten in coordinate notation to give the followingrelationship.

$\begin{matrix}{\begin{pmatrix}{- x} \\{- y} \\z\end{pmatrix} = {\begin{pmatrix}{\cos \; \theta} & {{- \sin}\; \theta} & 0 \\{\sin \; \theta} & {\cos \; \theta} & 0 \\0 & 0 & 1\end{pmatrix}{P^{- 1}\begin{pmatrix}u \\v \\0\end{pmatrix}}}} & {{Eq}.\mspace{14mu} 102}\end{matrix}$

Thus, Eq. 102 specifies two non-degenerate linear equations. In the casethat P⁻¹ corresponds to a scalar or to a scalar multiple of an identitymatrix, squaring and summing the two non-degenerate linear equations andsimplifying the result yields the following.

x ² +y ²=(P ⁻¹)²[(u cos θ−v sin θ)²+(u sin θ+v cos θ)²]=(P ⁻¹)²(u ² +v²)  Eq. 103

Because x²+y² is equal to ∥S∥² and u²+v² is equal ∥c∥², Eq. 103 can besimplified to ∥S∥²=(P⁻¹)²∥c∥², or ∥S∥=P⁻¹∥c∥.

Thus, the distance measurement ∥c∥, and the corresponding distancemeasurement ∥S∥, can define a circle in an x-y plane centered at theorigin (0, 0) with radius ∥S∥. A tangent to the circle at the positionof the sensor at the position of the sensor (that is, at S), isorthogonal to the vector s=(x y)^(T), where the superscripted “T”denotes the vector or matrix transposition operation. The tangent ŝ cantherefore be expressed as ŝ=(y−x)^(T). The rotational orientation, φ, ofthe robot of the robot with respect to ŝ can then be estimated using ameasurement of c as given in the following relationship.

φ=tan⁻¹(u/v)  Eq. 104

Thus, in this embodiment, ∥S∥ and φ can be determined, which canadvantageously support applications for robotics, person tracking,object tracking, and the like. In one example, the spot is projectedonto the ceiling directly above a docking station, and the opticalposition sensor with one PSD camera is attached to a robot. Using theestimation ∥S∥ and φ, the robot can guide itself to turn toward the spotand approach the spot. In this manner, the robot can approach thedocking station and recharge itself. In an alternative example, theprojector can correspond to a handheld projector and can be used topoint above a user-selected object or location of interest to guide tothe robot to the object or location. This alternative example provides apowerful interface for robot interaction.

Examples of Other Embodiments of the Invention

One embodiment of the method and apparatus includes a camera, such as aCCD camera, a CMOS camera, and the like, and a projector that generatesa pattern on a projection surface, such as a ceiling. It will beunderstood that this embodiment can include multiple cameras and/ormultiple projectors. By way of example, the projector can correspond toa slide projector, and the pattern can be encoded in a slide. In oneembodiment, at least one pattern has the shape of a circle, and inanother embodiment, at least one pattern has the shape of a square. Eachcamera generates grayscale or color images. A signal processing unitprocesses the camera images, extracts the unique patterns, and estimatesa position of the pattern in camera sensor coordinates. The position ofthe pattern can be defined as the centroid of the pattern. The positionof the j-th pattern in the global reference frame can be denoted hereinby w_(j), and the position of the j-th pattern in the reference frame ofthe i-th camera can be denoted herein by c_(i,j). Then, the relationshipbetween the j-th pattern and its projection onto the i-th camera isdefined by Eq. 90. The signal processing unit captures the camera imagesand processes the images using one or more image analysis techniques todetect and extract the position of known patterns. The image analysistechniques can include, by way of example, line and corner detection (todetect a square pattern, for example), Hough transform (to detect acircle, for example), and the like. After the positions of the patternsin the camera reference frames are determined, the signal processingunit can estimate the positions of the cameras with respect to theglobal reference frame using the methods described previously.Optionally, one or more of the projectors can modulate on-off to reducethe effects of ambient light. The modulation frequencies canadvantageously be used to associate a unique identifier with eachpattern. In one embodiment, the identifier of a pattern isadvantageously encoded within the pattern itself As an example, theshape of the pattern can define a unique identifier, if distinct shapesare used for each pattern. For example, the system can distinguishbetween a square pattern and a circular pattern and associate differentidentifiers with each pattern.

In one embodiment, the modulation frequency of the projector can encodeinformation, such as bit patterns to transmit a message that can bedetected and extracted by the camera and the signal processing unit. Thebit patterns can be modulated in the signal using any of a variety ofcommon modulation techniques, such as pulse width modulation, spacewidth modulation, and phase modulation.

In another embodiment, the bit patterns are modulated on top of theoriginal “carrier” frequency of the spot. The projectors and opticalposition sensors can advantageously be used for optical wirelesscommunication. In this embodiment, the projector projects the lightpattern on a reflecting surface, and the optical sensor detects thesignal by viewing the reflecting surface, which eliminates the need forline-of-sight between the emitter and the sensor. The signal modulatedin the projected light can carry commands, such as commands for a robot,similar to the way in which light modulated by a remote control unit cancarry commands to an appliance. In one example, the projection of thespot on the ceiling directly above a docking station enables the robotto find the docking station and perform self-charging. In addition, aninterface with the docking station, such as a button on the dockingstation, can generate a command to the robot to return to the chargingstation.

Yet another embodiment of the method and apparatus includes a projectorfor one or more distinct regions of an environment, such as a projectorfor each distinct region. Advantageously, this embodiment expands thecoverage of localization throughout relatively large areas or throughoutmultiple relatively confined areas, such as multiple rooms. The coveredarea associated with one projector can be constrained by the field ofview of the camera, the distance from the projector to the reflectionsurface, and the presence of objects and walls that obstruct thecamera's view of the spot. Increasing the number of light patterns canincrease the coverage area. In one embodiment, for coverage acrossmultiple rooms, one or more projectors are provided for each room inwhich coverage is desired, so that, for example, each room can have adedicated projector. For example, each projector can project one or morespots that have an identifier that is unique within the room. It will beunderstood that the identifier associated with a spot can be based onthe spot's modulation frequency, the spot's shape, the spot's color, oranother appropriate characteristic that can be detected by the camerasensor.

In one implementation, the combination of the individual spotidentifiers with a room can define a unique identifier for the room. Byway of example, a first room can have two spots having associated uniqueidentifiers “A” and “B,” and a second room can have two spots havingassociated unique identifiers “A” and “C.” The unique identifiers foreach room can advantageously be used by a system, such as by a robot, tobuild a topological map of the rooms and the connectivity of the rooms.Without a unique identifier for each room or region, the system candisadvantageously generate ambiguous position information. As anillustration, without a unique identifier for each room, the positionassociated with an (x, y) coordinate of a first room can generally notbe distinguished from the position associated with the (x, y) coordinateof a second room.

While certain embodiments may be illustrated or discussed as havingcertain example components, additional, fewer, or different componentsmay be used. Further, with respect to the processes discussed herein,various states may be performed in a different order, not all states arerequired to be reached, and fewer, additional, or different states maybe utilized.

Various embodiments have been described above. Although described withreference to these specific embodiments, the descriptions are intendedto be illustrative and are not intended to be limiting. Variousmodifications and applications may occur to those skilled in the art.

The references below may be of assistance in understanding the describedsubject matter. Applicants do not concede that any of the following areprior art to the present application.

-   [1] S. Thrun, W. Burgard, and D. Fox, Probabilistic Robotics.    Cambridge, Mass.: MIT Press, 2005.-   [2] W. Burgard, A. Cremers, D. Fox, G. Lakemeyer, D. Hahnel, D.    Schulz, W. Steiner, and S. Thrun, “The interactive museum tour-guide    robot,” in Proc. 15th National Conference on Artificial Intelligence    (AAAI '98), 1998.-   [3] W. Jeong and K. Lee, “CV-SLAM: A new ceiling vision-based SLAM    technique,” in Int. Conference on Intelligent Robots and Systems    (IROS), 2005.-   [4] K. Konolige, J. Augenbraun, N. Donaldson, C. Fiebig, and P.    Shah, “A low-cost laser distance sensor,” in Int. Conference on    Robotics and Automation (ICRA), 2008.-   [5] K. Konolige, G. Grisetti, R. Kummerle, W. Burgard, B. Limketkai,    and R. Vincent, “Sparse pose adjustment for 2D mapping,” in Int.    Conference on Intelligent Robots and Systems (IROS), 2010.-   [6] J. Borenstein, J. Everett, and L. Feng, Navigating Mobile    Robots: Systems and Techniques. Wellesley, Mass.: A. K. Peters,    Ltd., 1996.-   [7] Y. Cui and S. Ge, “Autonomous vehicle positioning with GPS in    urban canyon environments,” IEEE Transaction on Robotics and    Automation, vol. 19, no. 1, 2003.-   [8] F. Gustafsson and F. Gunnarsson, “Mobile positioning using    wireless networks,” IEEE Signal Processing Magazine, pp. 41-53, July    2005.-   [9] A. Varshaysky, E. de Lara, J. Hightower, A. LaMarca, and V.    Otsason, “GSM indoor localization,” Pervasive and Mobile Computing,    vol. 3, 2007.-   [10] M. Ocaña, L. Bergasa, M. Sotelo, R. Flores, D. Llorca, and D.    Schleicher, “Automatic training method applied to WiFi+ultrasound    POMDP navigation system,” Robotica, vol. 27, pp. 1049-1061, 2009.-   [11] B. Ferris, D. Fox, and N. Lawrence, “WiFi-SLAM using Gaussian    process latent variable models,” in Int. Joint Conference on    Artificial Intelligence (IJCAI), 2007.-   [12] J.-S. Gutmann, G. Brisson, E. Eade, P. Fong, and M. Munich,    “Vector Field SLAM,” in Int. Con! on Robotics and Automation (ICRA),    2010.-   [13] J.-S. Gutmann, E. Eade, P. Fong, and M. Munich, “A    constant-time algorithm for Vector Field SLAM using an exactly    sparse extended information filter,” in Robotics: Science and    Systems (RSS), 2010.-   [14] M. R. Walter, R. M. Eustice, and J. J. Leonard, “Exactly sparse    extended information filters for feature-based SLAM,” International    Journal of Robotics Research, vol. 26, no. 4, pp. 335-359, 2007.-   [15] M. Bosse, P. Newman, J. Leonard, and S. Teller, “SLAM in    Large-scale Cyclic Environments using the Atlas Framework.” The    International Journal of Robotics Research, vol. 23, no. 12, pp.    1113-1139, 2004.-   [16] J. Leonard and H. Feder, “Decoupled stochastic mapping,”    Journal of Oceanic Engineering, vol. 26, no. 4, pp. 561-571, 2001.-   [17] T. Bailey, J. Nieto, J. Guivant, M. Stevens, and E. Nebot,    “Consistency of the EKF-SLAM algorithm,” in Int. Conference on    Intelligent Robots and Systems (IROS), 2006.-   [18] S. Hyung, J. Kim, J. Lee, J. Park, H. Shim, and K. Lee, “Method    and apparatus for detecting movement error in mobile robot,” U.S.    Patent Application US 2009/0 171 504 A1, Jul. 2, 2009.-   [19] J. Neira, L. Tardós, and J. Castellanos, “Linear time vehicle    relocation in SLAM,” in Int. Conference on Robotics and Automation    (ICRA), Taipei, Taiwan, 2003.-   [20] K. Arras, J. Castellanos, M. Schilt, and R. Siegwart,    “Feature-based multi-hypothesis localization and tracking using    geometric constraints,” Robotics and Autonomous Systems, vol. 44,    pp. 41-53, 2003.-   [21] Y. Yamamoto, P. Prijanian, J. Brown, M. Munich, E. D.    Bernardo, L. Goncalves, J. Ostrowski, and N. Karlsson, “Optical    sensing for robot perception and localization,” in Proc. Workshop on    Advanced Robotics and its Social Impacts (ARSO), 2005.-   [22] Evolution Robotics Inc. (2011) Introducing Mint—the evolution    of floor care, www.mint-cleaner.com. [Online]. Available:    http://www.mint-cleaner.com

What is claimed is:
 1. A method of performing simultaneous localizationand mapping (SLAM) for a robot, the method comprising: performing SLAMin a first area associated with a first map; performing SLAM in a secondarea associated with a second map; and performing position estimation ina third area outside of and between the first area and the second area,wherein in the third area, position estimation is performed with deadreckoning.
 2. The method of claim 1, wherein dead reckoning is performedusing odometry and a gyroscope.
 3. The method of claim 1, furthercomprising: resetting a timer upon entry of the robot into the thirdarea; tracking time spent in the third area with the timer; andreturning to at least one of the first area or the second area after apredetermined elapsed time in the third area.
 4. The method of claim 1,further comprising: resetting a timer upon entry of the robot into thethird area from the first area or the second area; remembering which oneof the first area or the second area the robot was in prior to entry tothe third area; tracking time spent in the third area with the timer;and returning to the one of the first area or the second area from whichthe robot was in prior to entry to the third area after elapsing of apredetermined time in the third area unless the robot enters an area inwhich SLAM can be performed at least with positioning information basedon observations of a set of one or more continuous signals.
 5. Themethod of claim 1, further comprising: estimating a position uncertaintyof the robot while operating in the third area; and if the positionuncertainty is larger than a predetermined threshold, returning to atleast one of the first area or the second area.
 6. The method of claim1, further comprising: estimating a position uncertainty of the robotwhile operating in the third area; remembering which one of the firstarea or the second area the robot was in prior to entry to the thirdarea; and if the position uncertainty is larger than a predeterminedthreshold, returning to the one of the first area or the second areafrom which the robot was in prior to entry to the third area.
 7. Themethod of claim 1, wherein in the first area, SLAM is performed at leastwith positioning information based on observations of a first set of oneor more continuous signals, wherein in the second area, SLAM isperformed at least with positioning information based on observations ofa second set of one or more continuous signals.
 8. The method of claim7, wherein the first set of one or more continuous signals and thesecond set of one or more continuous signals comprise reflections ofspots of infrared light.
 9. The method of claim 8, further comprisingdistinguishing among the different reflections of spots of infraredlight based on frequency.
 10. The method of claim 1, wherein the robotcomprises an autonomous robotic cleaner, further comprising performingSLAM while cleaning a surface.
 11. An apparatus comprising: a robot; acontroller of the robot configured to: perform SLAM in a first areaassociated with a first map; perform SLAM in a second area associatedwith a second map; and perform position estimation in a third areaoutside of and between the first area and the second area, wherein inthe third area, position estimation is performed with dead reckoning.12. The apparatus of claim 11, wherein the controller is configured toperform dead reckoning using odometry and a gyroscope.
 13. The apparatusof claim 11, wherein the controller is further configured to: reset atimer upon entry of the robot into the third area; track time spent inthe third area with the timer; and return to at least one of the firstarea or the second area after a predetermined elapsed time in the thirdarea.
 14. The apparatus of claim 11, wherein the controller is furtherconfigured to: reset a timer upon entry of the robot into the third areafrom the first area or the second area; remember which one of the firstarea or the second area the robot was in prior to entry to the thirdarea; track time spent in the third area with the timer; and return tothe one of the first area or the second area from which the robot was inprior to entry to the third area after elapsing of a predetermined timein the third area unless the robot enters an area in which SLAM can beperformed at least with positioning information based on observations ofa set of one or more continuous signals.
 15. The apparatus of claim 11,wherein the controller is further configured to: estimate a positionuncertainty of the robot while operating in the third area; and if theposition uncertainty is larger than a predetermined threshold, return toat least one of the first area or the second area.
 16. The apparatus ofclaim 11, wherein the controller is further configured to: estimate aposition uncertainty of the robot while operating in the third area;remember which one of the first area or the second area the robot was inprior to entry to the third area; and if the position uncertainty islarger than a predetermined threshold, return to the one of the firstarea or the second area from which the robot was in prior to entry tothe third area.
 17. The apparatus of claim 11, wherein in the firstarea, the controller is configured to perform SLAM at least withpositioning information based on observations of a first set of one ormore continuous signals, and wherein in the second area, the controlleris configured to perform SLAM at least with positioning informationbased on observations of a second set of one or more continuous signals.18. The apparatus of claim 17, wherein the first set of one or morecontinuous signals and the second set of one or more continuous signalscomprise reflections of spots of infrared light.
 19. The apparatus ofclaim 18, wherein the controller is further configured to distinguishamong the different reflections of spots of infrared light based onfrequency.
 20. The apparatus of claim 11, wherein the robot comprises anautonomous robotic cleaner, wherein the controller is configured toperform SLAM while cleaning a surface.
 21. An apparatus for performingsimultaneous localization and mapping (SLAM) for a robot, the apparatuscomprising: a means for performing SLAM in a first area associated witha first map and in a second area associated with a second map; and ameans for performing position estimation in a third area outside of andbetween the first area and the second area, wherein in the third area,position estimation is performed with dead reckoning.